Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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, но это не помогло - лисенеры глухо молчат =(

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

Старый 30.10.2007, 10:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Видео с заданной позиции грузить можно только если сервер такое умеет.

Старый 30.10.2007, 11:41
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 3  
Ответить с цитированием
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
я тоже так думал но потом наткнулся что где то писали что вот как раз за счёт потока можно качать хоть из середины.. ладно это позже сам покопаю. а как на счёт статистики загрузки? т.е. как мне узнать колличество всего и колличество загруженных байт?

Старый 30.10.2007, 12:57
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 4  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
Играть с середины можно, если ты используешь стандартный адобовский сервер, либо используешь любой другой сервер, который может отдать тебе поток с любого момента. В любом случае есть хитрость - при запросе, необходимо четко попадать на кадр, иначе поток играться не станет.

Старый 31.10.2007, 12:36
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 5  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: Oct 2007
Сообщений: 269
Цитата:
стандартный адобовский сервер, либо используешь любой другой сервер, который может отдать тебе поток с любого момента
О каком сервере речь? RTMP или HTTP? Если про http и нужна только поддержка ranges, то она есть практически на любом сервере. Если можно, то дайте пример кода с доступом к произвольной части FLV.

Цитата:
необходимо четко попадать на кадр, иначе поток играться не станет.
А эти смещения можно как-то заранее определить? Т.е. сделать индекс и бегать по нему?

Старый 31.10.2007, 12:49
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 6  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
Адобовский потоковый FCS FMS, а сам протокол не важен, хоть rtmpts =)))) или любой поддерживающий ranges - да.

Эти смещения определяются при кодировании видео в FLV, и называются они metadata. В них пихают обычно ключевые фремы, по смешению и по времени - т.е. два массива.

Старый 31.10.2007, 13:02
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 7  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: Oct 2007
Сообщений: 269
Цитата:
или любой поддерживающий ranges - да.
Сейчас сложнее найти сервер, который их не поддерживает

Цитата:
при кодировании видео в FLV
Поподробнее. У меня видео кодируется "на лету" через ffmpeg, в гугле нашел упоминания только про cue points и их расстановку через flvtool. А как выдрать индексы (смещения) ключевых кадров - нет. Если можно, то поподробнее.

Старый 31.10.2007, 18:06
smartan вне форума Посмотреть профиль Отправить личное сообщение для smartan Посетить домашнюю страницу smartan Найти все сообщения от smartan
  № 8  
Ответить с цитированием
smartan

Регистрация: Aug 2007
Сообщений: 45
Отправить сообщение для smartan с помощью Skype™
Цитата:
Я хотел добавить ещё функцию статистики
читай хелп там всё есть!!!!

Цитата:
Если можно, то дайте пример кода с доступом к произвольной части FLV
__etc уже сказал что тут не в коде дело а в серваке!!!!!!

Цитата:
необходимо четко попадать на кадр, иначе поток играться не станет
странно а у меня ничего никуда не попадало, но все играло (с опр. места конечно)

Цитата:
называются они metadata


И вообше когда люди которые с флешаком знакомы с 2004 года (судя по дате регистрации), задают вопросы:
Цитата:
как мне узнать колличество всего и колличество загруженных байт?
мне становится грустно .....


Последний раз редактировалось smartan; 31.10.2007 в 18:25.
Старый 31.10.2007, 18:44
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 9  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: Oct 2007
Сообщений: 269
Цитата:
уже сказал что тут не в коде дело а в серваке!!!
Дык вроде выяснили, что ему http хватит, а ranges есть практически везде. Или я чего-то не понимаю?

Старый 31.10.2007, 19:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
LinuxVideo, каким образом, по-вашему, флеш отправит ranges?

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.