Тема: FLV плеер
Показать сообщение отдельно
Старый 30.10.2007, 09:15
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 1  
Ответить с цитированием
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
По умолчанию FLV плеер

странно что на AS3 никто ничего про это не говорит.
мне тут задача недавно встала создать плеер FLV.

к сожалению так исторически сложилось я с FLV никогда не сталкивался вообще. так что не хочу щас ворошить двойку и попробовать сделать сразу на тройке.

первое что дал F1 это FLVPlayback - но как увидел импорт сразу понял что это не то, так как он требует библиотечных элементов.

единственное что нашёл подходящее это скудный Class Video.
и там здравствуй сново NetStream.

используя пример
Код:
 package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;

    public class VideoExample extends Sprite {
        private var videoURL:String = "Video.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        public function VideoExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: " + videoURL);
                    break;
            }
        }

        private function connectStream():void {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
        
        private function asyncErrorHandler(event:AsyncErrorEvent):void {
            // ignore AsyncErrorEvent events.
        }
    }
 }
Я хотел добавить ещё функцию статистики сколько загружено (стандартый статистик бар).

А ещё даже где то видел что тыкнув на не загруженную часть ролика - можно начать грузить заново именно с этого момента.

певое пытался решить поставив 2 дополнительных лисенера на NetStream, но это не помогло - лисенеры глухо молчат =(

в общем посоветуйте пожалуйста кто что знает по этой теме и сталкивался уже.