#android #video-streaming
#Android #потоковое видео
Вопрос:
Я пытаюсь воспроизвести видео с веб-сервера, используя намерения.
Я тестировал на двух устройствах:
- Google Pixel (API 29)
- Samsung Galaxy S6 (API 24)
На первом видео воспроизводится на встроенном медиаплеере без проблем. На втором устройстве видео не воспроизводится с ошибкой:
Couldn't open [VIDEO URL]: : java.io.FileNotFoundException: No content provider: [ VIDEO URL]
0-10-25 18:33:24.783 19961-19961/? D/MediaPlayer: setDataSource IOException | SecurityException happend : java.io.FileNotFoundException: No content provider: [VIDEO URL]
и чуть позже в logcat:
2020-10-25 18:33:29.603 19961-19961/? E/VideoDB: setResumePosition - Exception occured:java.lang.IllegalArgumentException: Unknown URI
Код, который я использую, это:
val videoUri = Uri.parse(getVideoUrl(videoId))
val intent = Intent(Intent.ACTION_VIEW, videoUri)
intent.setDataAndType(videoUri, "video/mp4")
startActivity(intent)
Почему видео не воспроизводится на устройстве с API 24? Есть ли какие-либо дополнительные настройки, которые я должен выполнить?
Должен ли я загружать видео на устройство, а затем воспроизводить его? Если да, то будут оценены некоторые ссылки / рекомендации по этому поводу.
Комментарии:
1. Какое значение, возвращаемое
getVideoUrl(videoId)
этим, не работает?2. @CommonsWare Это допустимый URL,
http://[server url].[file name].mp4
. Если я открою его в браузере, видео будет воспроизводиться.3. Попробуйте использовать
https
URL-адреса, так как функция обмена открытым текстом (http
) по умолчанию запрещена в более новых версиях Android. Вы можете настроить конфигурацию сетевой безопасности , чтобы разрешить трафик открытого текста, но это не очень хорошо с точки зрения безопасности.4. Это
https
, извините5. Во-первых, мои извинения — конфигурация сетевой безопасности влияет на ваше приложение, и я забыл, что вы запускали другое приложение, и проблема была там. Обратите внимание, что в Android нет единого «встроенного медиаплеера». Приложение, которое отвечает
ACTION_VIEW
на ваш URL-адрес, зависит от устройства. В этом случае, независимо от того, что запускается на вашем Samsung, ваш URL-адрес по какой-то причине не нравится, и из этого сообщения Logcat не очевидно, почему это было бы недовольно.