Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   NetConnection.connect(null) (http://www.flasher.ru/forum/showthread.php?t=187172)

TrumaN 14.11.2012 22:42

NetConnection.connect(null)
 
Всем привет.
Есть такой вопросец. Приложение проигрывает видео-файлы, лежащие на удаленном сервере. Необходимо, чтобы промежуток времени между нажатием на кнопку "Play" и началом проигрывания был минимальным.
2 варианта:
1) Файл на веб-сервере (протокол http). Видео грузим так:
NetConnection.connect(null);
NetStream.play(fileUrl);
2) Файл на FMS (или Wowza, Red5, короче rtmp), грузим:
NetConnection.connect(serverUrl);
NetStream.play(streamName);

Вопрос по поводу первого способа: проигрывание начнется после того как загрузится весь файл или сразу?
И какой из способов быстрее начнет проигрывание?

illuzor 14.11.2012 23:50

Цитата:

проигрывание начнется после того как загрузится весь файл или сразу?
Нет, как только будет заполнен буфер.

Вряд ли есть существенная разница между двумя способами. Проигрывание начинается после того, как заполнился буфер.

Krusty 14.11.2012 23:55

Разницы не будет, время на ответ определяется исключительно сетевыми задержками, которые одинаковы.

Вы можете прогрузить часть файла заранее, а при нажатии плей грузить остаток. Для этого на сервере должен быть установлен модуль псевдостриминга, а видеофайл обработан соотв. образом.
Минусы-
1)часть траффика будет скушана вне зависимости от того, будет ли нажата кнопка плей
2) при нажатии на плей сразу после загрузки флешки никакого позитивного эффекта вы не добьетесь

TrumaN 15.11.2012 01:31

Странно. Опытным путем у меня получается, что разница есть.

Смысл вообще в следующем:
Каждые 2 секунды я получаю xml с ссылками на 5 текущих видеороликов и 5 следующих. Показывать нужно только 5 текущих, и каждые 2 секунды их менять.
Сначала я работал только с 5 текущими видео: я создал один netConnection и при получении xml закрывал старые (предыдущие) стримы и начинал новые. Но проблема была в том, что за время смены (2 секунды) видео даже не успевало начать проигрываться.
Поэтому затем я сделал вот как - одновременно работают 10 netStream-ов. Я показываю текущие 5 стримов и одновременно начинаю грузить следующие 5. Когда приходит новая xml - показываю новые и вместо старых пяти - и гружу 5 новых.
Тут возникла проблема со скоростью загрузки. Я попробовал для каждого стрима сделать свой netConnection, и грузиться стало все немного (но заметно) резвее.

Но все это делалось через RTMP.
Теперь же может потребоваться делать то же самое с видео, лежащем на удаленном HTTP.

И путем тестов у меня получилось, что результаты через HTTP вообще никакие (ни через один netConnection, ни через 10). Получилось, что вообще события NetStatusEvent, прослушиваемые на всех netStream, вообще практически всегда не успевают срабатывать в течение 4 секунд (2 секунды до показа + 2 секунды показа). Может дело в настройках http-сервера, который не дает одновременно 10 подключений. Но к нему я доступа не имею


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

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