![]() |
|
||||||||||
|
|||||
|
Не могу разрешить один интересный момент.
Буду очень признателен за помощь. В подключении через "http://" я использовал в качестве просмотра прогресса загрузки видео файла "bytesTotal" и "bytesLoaded", переводил в "продолжительность времени" и выводил пользователям. А вот с подключением через "rtmp://" возникли сложности, "bytesTotal" и "bytesLoaded" выводят по "0". Воспользовался "bufferLength" и "bufferTime" а т.е. перед выводом загруженного материала я использовал такой код: public function get buffer( ):Number { if (_buffer == _duration) return _buffer; if (ns.bufferTime < _duration) _buffer = ns.bufferTime ++; else if (ns.bufferTime > _duration) _buffer = _duration; return _buffer; } При срабатывании события "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, время: 03:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|