PDA

Просмотр полной версии : Видео и seek


in4core
10.08.2009, 03:02
Тут ковырялся подумал сделать плеер. Вот интересно, перерыл весь хелп, кроме как onMetaData , ничто не хочет нам показывать полную длину ролика! Или я плохо смотрю?
Просто если делать ползунок прокрутки для видео , явно придется отталкиваться от полной длинны ролика, а потом привязывать через seek();

mooncar
10.08.2009, 10:44
Данные вроде как потоковые, откуда флешу до полной загрузки знать длину ролика?
Тут с неделю назад была тема, поищи - обсуждалось практически на днях, вывод был что только через мета-данные.

in4core
10.08.2009, 21:52
Ну если так. то каким образом можно сделать перемотку ? должно для этого что то быть!

mooncar
10.08.2009, 22:04
Зашивайте в импортируемый ролик Cue Point, и используйте onMetaData.

"You can use the list of cue points provided to the onMetaData() event handler to let your user start playing the video at predefined points along the video stream. Pass the value of the cue point's time property to the NetStream.seek() method to play the video from that cue point."

Была тут тема, надо было при достижении конца проигрываемого фильма совершить перемотку, автору топика CuePoint, зашитая в последний кадр FLV, в этом помогла. А вам нужно попробовать наобороот, с помощью onMetaData получить эту точку и сделать туда seek().
Хотя конечно, это только перемотка в конец, а вот как сделать навигацию по всему потковому ролику - тут надо подумать (только это изобретение велосипеда, наверное..)

in4core
10.08.2009, 22:16
Ну почему изобретение велосипеда! Свой плеер есть свой плеер со своим дизайном и функциями. Вот вы говорите про Cue Point. Ok . Гружу потоково я видео - догрузилось оно до конца - а значит должна где то написаться его длина! Через onMetaData показывается много информации очень много а не 1 duration . По этому вернуть этот параметр не выйдет. Я пошныгал по гуглу, там ребята про AS3 этот вопрос обсуждают. так ТАМ целый класс пишется чтобы узнать длину ролика. Помоему это перебор уже!

Добавлено через 1 минуту
Да и кстати, проверять то я проверяю НЕ в сети, а при тесте в fla , а значит видео УЖЕ прогружено заранее. Так что надо как то придумать((( даже не знаю что....

mooncar
10.08.2009, 22:26
Потестирую-ка использование Cue Point для этих целей.

Добавлено через 17 минут
Если готовим файл flv для плеера, то можно на первом кадре вшить Cue Point и в ее параметре руками прописать длину ролика в любых еденицах.. и вообще, любой набор данных - и напрочь обойтись без MetaData.
Пока еще разбираюсь, как дальше сделать с длиной ползунка и прочим.

in4core
10.08.2009, 23:38
Интересно что выйдет. Попробуем тогда потом все это в класс пихнуть

mooncar
10.08.2009, 23:41
Данные о длине, названии, любые данные словом, получилось взять из первого кадра. Двигаюсь дальше, сейчас с прогресс-баром вожусь.

in4core
10.08.2009, 23:47
Как данные то взял?

mooncar
10.08.2009, 23:57
Руками вписал в параметры Cue Point на 0-й секунде при импорте в FLV.
Я предполагаю, что ролик импортируется по утвержденному алгоритму.
Не то?

Алиль
11.08.2009, 00:33
in4core и Через onMetaData всё хорошо получается. Do you speak English?
Если лазить по аглицким сайтам, то там много рассказывают, не скрывая...

А тут на форуме видео можно выложить? я хотел, но видимо габариты не позволяють...

in4core, если вам нужен файл... напишите мне на почту... подписавшись так - ХОЧУ УРОК С ВИДЕО

Надеюсь, что я не забуду и пойму кто это :quiet: и главное, чтоб меня не завалили просьбами... вдруг кто-то представится вместо Вас и я потом буду в смятении :wacko:

Моя почта: rollfield@mail.ru

mooncar
11.08.2009, 00:48
Прогресс-бар работает, осталось его сделать активным, чтобы перемотка работала куда нужно.

mooncar
11.08.2009, 02:28
Вот видеоплеер в аттачментах. Немного "баговато" - не точно на нужную секунду ползунком попасть можно, но я грешу на небольшой размер ролика, из-за чего общая длина маленькая (13 сек). Ну и по мелочи еще не все гладко - навигация с кнопок не совсем стандартная. Но хотелось просто проверить использхование Cue Point для получения произвольных данных от ролика. На больших роликах не проверял.

При импорте avi выбираем "Progressive download...", и получаем после всех действий файл FLV.
Внедрение Cue Point:

http://pic.************/uploads/090811/H7yKIt805U.jpg (http://************/)

in4core
11.08.2009, 14:05
Даже не знаю. Может и то. Ну если выйдет ползунок то просто Grace~! вам. Я лично не смог додуматься

Добавлено через 3 минуты
Mooncar - извиняюсь может я сразу и не сказал. Видео у меня не энкодированное и не вгружается в ролик. Оно ПОДГРУЖАЕТСЯ из внешнего файла.
Щас исходник положу на всяк случай. кнопки навигации все рабочие кстати.

Добавлено через 17 минут
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
myVideo.attachVideo(ns);
var _arr:Array = [];
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
for(var i=0; i < xml.firstChild.childNodes.length; ++i) {
_arr.push(xml.firstChild.childNodes[i].attributes.url);
var newy:Number = i*(a._height+2);
var mc = a.duplicateMovieClip( "a" + i, i,{_y:newy}); // создаем лист видях
_root[ "a" +i ].ID = i;
_root[ "a" +i ].onRelease = function() { ns.play(_arr[ID]); } // при нажатии на кнопку листа загружаем нужную видео
}
}
stop_btn.onRelease = function() {
ns.pause(true);
ns.seek(0);
}
pause_btn.onRelease = function() {
if(ns.time > 0) { ns.pause(); }
}

play_btn.onRelease = function() {
ns.pause(false);
}

Вот код, исходник нет смысла выкладывать потому что там квадрат и 3 кнопки) такой у всех есть. А вот код, выложил.

Добавлено через 20 минут
Да кое какие строчки кода писал находу, а именно создание листа. Писал прям тут без проверки. может где ошибся. Ну думаю не это важно

mooncar
11.08.2009, 14:52
Так и у меня подгружается - там же строка в начале, задающая URL.
Посмотрите видеоплеер, ползунок я там организовал - работает.
Плейлист-эдитор я на задавался целью делать, но у вас он реализован, думаю.
Делал недавно для одного проекта плейлист, но только не на основе XML, а на основе простых текстовых файлов. (Пока с XML не дружу). Было нужно уметь редактировать плей-лист с помощью PHP.
Код ваш посмотрю, правда сейчас несколько загружен.

in4core
11.08.2009, 15:00
Ок поглядим исходник. спасибо. отпишу если что

mooncar
11.08.2009, 17:08
Да, плеер сырой, на больших файлах проблемы есть...