![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
Добрый вечер!
Не могу разобраться с псевдо стримингом. package { import flash.display.MovieClip; import flash.events.NetStatusEvent; import flash.events.TimerEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.utils.Timer; public class videocanvas extends MovieClip { public function videocanvas() { super(); _init(); } /** * Initialize the videocanvas */ private function _init():void{ //initialize variables this._netConnection = new NetConnection(); this._netConnection.connect(null); this._netStream = new NetStream(this._netConnection); this._netStream.client = {}; this._netStream.client.onMetaData = onMetaDataHandler; this._netStream.client.onCuePoint = onCuePointHandler; this._netStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); this._video = new Video(); this._video.attachNetStream(this._netStream); this._video.smoothing = true; this._netStream.bufferTime = 5; this._netStream.play("http://localhost/xxx.flv"); this._video.width = this.width; this._video.height = this.height; this._video.x = -(this._video.width/2); this._video.y = -(this._video.height/2); this.addChild(this._video); this.updateDisplay = new Timer(3,10); this.updateDisplay.addEventListener(TimerEvent.TIMER,updateTic); } private function updateTic(event:TimerEvent){ } /** * Metadata callback * */ public function onMetaDataHandler(metaInfo:Object){ this._netStream.play("http://localhost/xxx.flv?start=254389343"); } public function onCuePointHandler(item:Object){ trace(1); } private function netStatusHandler(e:NetStatusEvent){ } //variables section ============================================ //NetStream private var _netStream:NetStream; /*NetConnection*/ private var _netConnection:NetConnection; /*The video variable*/ private var _video:Video; /*Client variable*/ private var _stremClient:Object; //timer private var updateDisplay:Timer; //meta object private var videoMeta:Object; } } public function onMetaDataHandler(metaInfo:Object){ this._netStream.play("http://localhost/xxx.flv?start=254389343"); } Вопрос - откуда взять этот байт? Если вставляю туда произвольный байт, то ничего не воспроизводиться. Как мне расчитать нужные байты? Этот байт я спарсил с longtail JWPlayer. |
|
|||||
|
насколько помню для псевдострима нужны конкретные таймы (не от балды), которые ловятся как массив в метадате (т.е. в файл должна быть заинжектена правильная метадата))
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
в файл заинжектена карта метаданных с ключами и значениями:
-ключевые кадры -секунды. Но тогда не могу обратиться к ним с помощью метода seek(). Все-таки тут надо наверное что-то написать, переопределить может методы, я уже не знаю как, разбираю исходники longtail JWPlayer, но пока не могу понять. Однако, логи nginx мне говорять что JWPlayer обращается к .flv с параметром start=254389343 или каким-либо другим в зависимости от того куда я нажму. Использовать JWPlayer не могу. Мне важно разобраться в этом вопросе. Если кто-нибудь поможет, буду признателен. Спасибо. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 6
|
for (var i:int = 0; i < info['keyframes']['times'].length; i++) { if (videoStart < info['keyframes']['times'][i]) { jumpTo = ((info['keyframes']['times'][i] - videoStart < videoStart - info['keyframes']['times'][i - 1]) ? info['keyframes']['filepositions'][i] : info['keyframes']['filepositions'][i - 1]); i = info['keyframes']['filepositions'].length + 1; } } stream.play(path + '?start=' + jumpTo); videoStart - некое значение времени в секундах на которое мы хотим перейти. info - объект, приходящий в onMetaDataHandler, у Вас это metaInfo Пробегаем по всему массиву времен, содержащемуся в метаданных, и находим точку, ближайшую к нашей. Присваиваем переменной jumpTo значение из массива info['keyframes']['filepositions'], соответствующее найденной ранее точке. Формируем запрос на проигрывание потока, в качестве параметра указываем найденное значение.
__________________
Вера в себя есть смысл жизни (с) Оскар Де Ла Хойя |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
Спасибо тебе))) Вроде заработало.
Так вот оно как делается. Теперь буду знать. Спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|