![]() |
NetStream и rtmp://
Не могу разрешить один интересный момент.
Буду очень признателен за помощь. В подключении через "http://" я использовал в качестве просмотра прогресса загрузки видео файла "bytesTotal" и "bytesLoaded", переводил в "продолжительность времени" и выводил пользователям. А вот с подключением через "rtmp://" возникли сложности, "bytesTotal" и "bytesLoaded" выводят по "0". Воспользовался "bufferLength" и "bufferTime" а т.е. перед выводом загруженного материала я использовал такой код: Код AS3:
При срабатывании события "NetStream.Buffer.Empty" я изменял переменную "ns.bufferTime" и присваивал ей первоначальное значение(пусть будит 20мс). После события "NetStream.Buffer.Full" я присваивал значение "ns.bufferLength + ns.time" переменой "ns.bufferTime" и продолжал воспроизведение видео файла повторяя все выше указанные действия. Вот от сюда и возникли трудности. Вопрос: есть ли какой нибудь более подходящий способ считывать количество загруженного материала в буфере, в случае если я поступаю не правильно. Может у кого есть исходник как пример временной шкалы видео файла, или совет как сделать правильно. Буду очень признателен за помощь. В исходниках сети что то не могу найти подходящего варианта, а т.е. в случае с подключением rtmp вообще не нашёл, может так искал?! но тем ни имение пишу тут. Добавлено через 3 часа 47 минут Ещё наткнулся на один момент: Если я используя протокол "rtmp" проигрываю уже готовый видео файл, "onMetaData" в "ns.client" выводит окончательное время файла "onMetaData.duration", а при проигрывании прямого эфира "нет", ну это и логично, ни сервер ни клиент не может знать об окончании записи файла. Тут выход один, не выводить вообще прогресс загрузки файла или всё же ... может есть способ показать количество данных загруженных в настоящий момент в кэш? "bufferLength" в данном случае не помогает, т.е. фиксирует только при старте, далее стоит в исходном значении. Интересно, вот плеер на ютюбе выводит и кэш и прогресс и есть возможность воспроизведения с любой секунды, вроде бы то что нужно и работает по протоколу rtmp но, он работает не в прямом эфире. У меня в задаче сделать и плей лист и прямой эфир, тут уже прибегаю к совету знатоков! В данной ситуации, включая вышеуказанные манипуляции, лучше сделать 2 вида подключения? К примеру "LiveStream" и "FileStream". Почему прибегаю к совету, создавая 2 класса вынуждает на множественный повторяющийся код, а на создание одного универсального класса что то мозгов не хватает т.е. всплывает много подводных камней. Может у кого-то есть уже готовое решение, было бы круто! Добавлено через 13 часов 14 минут Я так понимаю что, первый кто с этим столкнулся?! =) |
| Часовой пояс GMT +4, время: 05:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.