почему поток Hls зависает в медиаплеере по умолчанию в приложении Amazon Fire TV? - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь воспроизвести поток hls в существующем конструкторе приложений Fire TV (1.0.7), поток воспроизводится плохо.Видео останавливается каждые 7 секунд, а затем звук повторяется.Как лучше всего подойти к этому вопросу?Я подумал, что могу обновить медиаплеер и посмотреть, решит ли это проблему, и хотел использовать последнюю версию Amazon exoplayer (https://github.com/amzn/exoplayer-amazon-port).. Я уже обновил существующий код, разветвленный от сборщика приложений Amazon fire (1.0.7) использовать плагин gradle 3.1.3 и инструменты сборки 27.0.3. Является ли обновление проигрывателя правильным подходом?

1 Ответ

0 голосов
/ 15 ноября 2018

7 секунд могут быть длиной сегмента и промежутком времени между ними, например, если видео зашифровано с помощью DRM, проверка лицензии. Также обратите внимание, что могут быть два разных поставщика DRM, например, ClearKey для низких битрейтов и WV для более высоких, то есть два разных сервера и серверные части, поэтому может быть расхождение.

Что касается лучшей проверки потока, вы можете удалить каждую дорожку одну за другой из файла .m3u8 и попытаться воспроизвести его. Например:

#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio_high",NAME="english stereo",LANGUAGE="en",AUTOSELECT=YES,URI="105560_audio_1_stereo_128000.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=18128000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=3840x1920,AUDIO="audio_high"
105560_video_1920_9000000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=10128000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=2160x1080,AUDIO="audio_high"
105560_video_1080_5000000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6128000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=1440x720,AUDIO="audio_high"
105560_video_720_3000000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3128000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=1080x540,AUDIO="audio_high"
105560_video_540_1500000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2128000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=720x360,AUDIO="audio_high"
105560_video_360_1000000.m3u8

Удалите первый и попробуйте воспроизвести снова. Сделайте это для каждого из треков, чтобы лучше устранить ошибку. Также, если вы проводите тестирование через Android Studio и Exoplayer, вы можете посмотреть на adb logcat, чтобы увидеть, где происходит сбой воспроизведения или ошибки.

...