![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Здравствуйте
Никогда еще не пользовался URLStream-ом, все больше использовал NetStream, сейчас хочу освоить первый Мог бы кто-нибудь поделиться ссылками или кусками кода для воспроизведения псевдострима (отдается через lighttpd) Воспроизвести с начала у меня получается, но вот когда я перематываю поток, ничего не происходит (звук с картинкой пропадают) Вот мой код private var _elapsed_bytes:uint = 0; private var _buffer:ByteArray = new ByteArray(); _stream=new NetStream(val); .... urlStream.addEventListener(StatusEvent.STATUS, urlStreamStatusHandler); urlStream.addEventListener(Event.COMPLETE, urlStreamCompleteHandler); urlStream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, urlStreamSecurityErrorHandler); urlStream.addEventListener(ProgressEvent.PROGRESS, urlStreamProgressHandler); urlStream.addEventListener(IOErrorEvent.IO_ERROR, urlStreamIOErrorHandler); .... public function play(path:String,offset:*=null):void { _stream.play(null); urlStream.load(new URLRequest(path)); } public function seek(val:Number):void { _stream.play(null); var req:URLRequest=new URLRequest(streamPath); urlStream.load(req); } protected function urlStreamProgressHandler(event:ProgressEvent):void { event.target.readBytes(_buffer,0,urlStream.bytesAvailable); _buffer.position = 0; if(_buffer.bytesAvailable > 0) { _stream.appendBytes(_buffer); _elapsed_bytes += _buffer.length; trace("_elapsed_bytes="+_elapsed_bytes); _buffer.clear(); } } Было бы великолепно, если кто-нибудь в 3-4 шагах опишет что после чего нужно делать Возможно, после перемотки, нужно формировать из _buffer FLV ? Как скармливать стриму загруженные байты ? Последний раз редактировалось djyamato; 22.08.2011 в 21:06. |
|
|||||
|
а зачем вам этот кульбит? если не секрет
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Modus ponens
|
Хех... нужно посмотреть описание FLV формата, там говорится о том, как узнать, что начался новый кадр (видео или звука), соответственно, хранить эти кадры самому где-нибудь, и потом, когда делаем перемотку, то начинать скармливать данные с нужного кадра. Единственное, нужно учитвать, что для длинных видео роликов или, тем более, видео, которое показывается вживую такой подход приведет к тому, что через какое-то время будет израсходовано очень много памяти.
Я так понимаю, это нужно для того, чтобы можно было точно перемотать за пределами буффера?
__________________
Hell is the possibility of sanity |
|
|||||
|
По большей части, для собственного развития
Добавлено через 1 минуту Цитата:
Спасибо Да, это нужно для того чтобы перематывать за пределы буффера А в таком случае мне уже не понадобятся lighttpd или nginx ? Верно же ? |
|
|||||
|
NetStream#appendBytes не канает?
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
неа, у меня в коде так и сделано
До первой перемотки все показывает и поет, чуть перемотал - все замолкает и гаснет |
|
|||||
|
Друзья,
было найдено решение? |
|
|||||
|
неа, не было
|
|
|||||
|
Вот и у меня все на том же замерло.
|
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
А этот вариант никак не подходит что ли?
http://www.bytearray.org/?p=1689
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:17. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|