![]() |
|
||||||||||
|
|||||
|
Всем доброго время суток.
Гружу локальный flv и атачу его в нетстрим через appendBytes но ни как не могу перематывать видео. Получается только воспроизвести заново. Гугл изучил и перепробовал все до китайских ссылок. Уверен кто-то из Вас работал или хотя бы понимает в чем проблема. Привожу код и видеоролик во вложении для хороших людей которые хотят помочь. package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.events.Event; import flash.display.Loader; import flash.utils.ByteArray; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.NetStreamAppendBytesAction; import flash.events.MouseEvent; public class Main extends Sprite { public function Main() { var _loader:URLLoader = new URLLoader(); _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, onResultDownload); _loader.load(new URLRequest("c:\\1.flv")); stage.addEventListener(MouseEvent.MOUSE_DOWN, click ); } private function click(eve:Event):void { ns.seek(3); } private var ns:NetStream; private var _client: Object = new Object(); private var _bytes:ByteArray; private function onResultDownload(event:Event):void { var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.client = _client; _client.onMetaData = metaDataHandler; video.attachNetStream(ns); ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); ns.addEventListener(IOErrorEvent.IO_ERROR, function(event:Event) { trace(event) } ); ns.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(event:Event) { trace(event) } ); _bytes = event.target.data; ns.play(null); addChild(video); ns.appendBytesAction(NetStreamAppendBytesAction.END_SEQUENCE); ns.appendBytes(_bytes); } private function metaDataHandler(info:Object):void { for ( var i in info) { trace(i+" >> "+info[i]); } } private function netStatusHandler(e:NetStatusEvent):void { trace(e.info.code); switch (e.info.code) { case "NetStream.Seek.InvalidTime" : break; case "NetStream.Play.Stop" : break; case "NetStream.Seek.Notify": ns.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN); ns.appendBytes(_bytes); break; } } } }
__________________
return this... |
|
|||||
|
Если использовать другую структуру тогда видео просто "зависает" а скорей всего просто останавливается
__________________
return this... |
|
|||||
|
Дело в том что я пытался и так поступить, но видео к примеру данное не давало метаданный keyframes. То-есть уже трабла еще до сего начатия.
Добавлено через 1 минуту Я уже готов резать видео на куски, задача вообще была не тривиальная и в такой ступор ввела, аж дико если честно. Добавлено через 2 минуты + по задаче мне нужно перемотка с рандомного места (то-есть оперделять место совсем не важно). Мне хоть как то объясните, а лучше покажите как перемотать и начать воспроизведение с любого места кроме начала при скармливании appendBytes
__________________
return this... |
|
|||||
|
Цитата:
Добавлено через 40 секунд научите
__________________
return this... |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
я уверен, что в скором будущем столкнусь с подобными проблемами и чтобы не создавать похожую, просто вежливо попрошу здесь - если кто то знает хорошие ссылки, на создание хорошего плеера ( видео ), поделитесь пожалуйста! ( чтобы там и перемотка была и все ). Может статьи какие то.
|
|
|||||
|
Регистрация: Dec 2011
Сообщений: 17
|
А зачем грузить из байтмассива если можно тупо просто грузить. Если файл локальный он быстро загрузится и как бы будет доступна перемотка по всему фильму. А если из инета надо грузить видео так там я так понимаю без серверных приблуд типа FMS или http dinamic hren' не обойтись .
|
|
|||||
|
Цитата:
Добавлено через 5 минут Подкиньте ссылку на побайтовый парсинг видео файлов
__________________
return this... |
|
|||||
|
Нашел порезчик флв https://code.google.com/p/flvslicer/ который указываешь с какой милисек по какую обрезать. Но чет он не хочет работать как надо. Буду дальше юзать.
__________________
return this... |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|