Я работаю над приложением для потоковой передачи видео. На сервере у меня есть защищенные файлы m3u8. Которые содержат зашифрованные файлы ts (шифрование AES-128). Я анализирую безопасный файл m3u8, затем загружаю файлы ts и расшифровываю их.
Я храню все расшифрованные файлы во внешнем хранилище устройства. Затем я создаю новый файл m3u8, который указывает на все расшифрованные файлы ts.
Я использую класс NanoHTTPD для создания собственного сервера на самом устройстве, и это указывает на каталог, в котором Я поместил все свои расшифрованные файлы ts и новый файл m3u8.
Затем я использую VideoView
и передаю URL-адрес файла m3u8 на свой собственный сервер.
Когда я начинаю воспроизводить VideoView
, видео запускается хорошо, но через некоторое время появляется сообщение об ошибке «Не удается воспроизвести это видео».
В журнале я получаю это сообщение
01-15 18:53:52.072: W/AudioSystem(16009): AudioFlinger server died!
01-15 18:53:52.072: W/IMediaDeathNotifier(16009): media server died
01-15 18:53:52.072: E/MediaPlayer(16009): error (100, 0)
01-15 18:53:52.072: E/MediaPlayer(16009): Error (100,0)
01-15 18:53:52.072: D/VideoView(16009): Error: 100,0
Я не понимаю, где проблема. На моем сервере или в VideoView.
Я проверил, что все зашифрованные файлы ts были правильно расшифрованы. & Я воспроизвел URL-адрес m3u8 моего пользовательского сервера на проигрывателе Android, и он отлично работает.
Я также попробовал образец m3u8 url от Apple, здесь я просто загрузите файлы ts и динамически создайте мой собственный файл m3u8. Он отлично работает.
Пожалуйста, направьте меня, где и что я делаю неправильно.