Задержки загрузки клипа FLVPlayback

Я создаю повествовательное киоск-приложение с переходом по клику на Flash / AS3. В настоящее время есть несколько (10+) локально загружаемых файлов .flv, которые я загружаю в компонент FLVPlayback на временной шкале. У меня возникают задержки с загрузкой, и мне интересно, какой сценарий лучше всего подходит для этого случая. Все они используют параметр «Загрузить внешнее видео с компонентом воспроизведения» для импорта видео.

Пока что я пробовал реализовать это двумя способами:

  1. Один кадр, одно воспроизведение FLVPlayback на сцене с именем «video_player», и после щелчка мышью / действия пользователя для переключения видео я делаю следующее:

    var new_flv:String = "next_flv.flv";
    
    video_player.stop();
    
    video_player.source("_flvs/"+new_flv);
    
    video_player.seek(0);
    
    video_player.play();
    

    Это приводит к задержкам от нескольких секунд до 10 секунд.

  2. Для меня это необычно, но я использовал несколько кадров на временной шкале. У каждого кадра на сцене был экземпляр FLVPlayback, каждый с отдельным относительным путем, помещенным в свойство 'source' в параметрах компонента (см. http://www.ashleylovespizza.org/stuff/flv_example.png). Код переключается между кадрами на основе метки кадра, а затем нажимает кнопку воспроизведения (автовоспроизведение также отключено в параметрах компонента).

    var new_flv_frame_name:String = "next_frame";
    
    this.gotoAndStop(new_flv_frame_name);
    
    this.video_player.play();
    

Проблема, опять же, в том, что загрузка занимает много времени. Что могло помешать такому поведению? Один длинный flv, который я ищу () в разные моменты времени на ползунке? Могу ли я предварительно загрузить отдельный экземпляр FLVPlayback, аналогично двойной буферизации?

Любые советы или передовой опыт приветствуются.


person ashleylovespizza    schedule 20.10.2012    source источник


Ответы (1)


Хотя вы не сказали мне, откуда загружаются файлы flv (локально или удаленно), и, как вы сказали, что вы создаете приложение в стиле киоска, я собираюсь рискнуть и сказать, что вы почти наверняка должны используйте Adobe AIR для киоск-приложения.

Нет причин для создания более одного FLVPlayback экземпляра, он способен воспроизводить несколько видео с использованием getVideoPlayer(index), вам решать управлять потоками, вызывая для них close().

Если вы загружаете файлы удаленно, то с помощью Adobe AIR вы можете загружать каждое видео в локальную папку с помощью класса FileStream. Это ускорит процесс воспроизведения этих файлов.

person Neil    schedule 20.10.2012
comment
В первой строке я упоминаю несколько (10+) локально загружаемых файлов .flv. Так что да, на местном уровне. Это моя причина смущения из-за такого длительного времени загрузки. Будет ли публикация fla в приложении .air, а не в .swf, улучшать время загрузки? Кроме того, я добавил больше кода для переключения flvs. - person ashleylovespizza; 21.10.2012
comment
Хотя это полезно; Думаю, я думал о FLVPlayback как о видеопроигрывателе, а не как о компоненте управления потоками. Подробнее об этом читайте в документации. - person ashleylovespizza; 21.10.2012
comment
Причина, по которой я предложил AIR, заключается в том, что это среда выполнения рабочего стола, поэтому браузер не требуется, вы сможете выполнять вызовы GC, что невозможно сделать в браузере. Я не понимаю, почему время загрузки было бы быстрее, но оно определенно не должно занимать 10 секунд в любой среде. Использование одного компонента и управление файлами без использования фреймов должно решить вашу проблему здесь. - person Neil; 22.10.2012