Использование VideoView для потоковой передачи или прогрессивного просмотра-скачать видео
-
20-09-2019 - |
Вопрос
Я в замешательстве по поводу того, как VideoView можно использовать для воспроизведения видео:из локального файла, как прогрессивная загрузка, так и потоковая передача.
Этот пример поработайте для меня (по крайней мере, на 1.5 и 2.0), загрузив файл и воспроизведя его локально.
Но обязательно ли скачивать видео перед воспроизведением:возможно ли воспроизводить видео при прогрессивной загрузке или потоковой передаче, просто используя setVideoPath или setVideoURI, как в VideoViewDemo в примерах API?
Код VideoViewDemo предлагает использовать setVideoURI для потоковой передачи, но я не совсем понимаю, какой URL я должен использовать.У кого-нибудь есть пример URL-адреса для видео, которое можно транслировать в эмулятор Android с помощью кода VideoViewDemo?
Можно ли использовать прогрессивную загрузку с VideoViewDemo?Я получаю сообщение "извините, это видео не может быть воспроизведено", используя setVideoPath с URL-адресами, которые отлично работают с примером блога, приведенным выше.(Это проблема в эмуляторе?Я пробовал 1.5 и 2.0.)
Я нашел много примеров и документации в Интернете, но пока ничего, что действительно отвечало бы на этот вопрос.
Решение
возможно ли воспроизводить видео в режиме прогрессивной загрузки или потоковой передачи просто используя setVideoPath или setVideoURI, как в VideoViewDemo в примерах API?
Так и должно быть.Это, безусловно, работает с MediaPlayer
, и VideoView
это всего лишь ~ 200-строчная оболочка вокруг MediaPlayer
и еще SurfaceView
.
Код VideoViewDemo предлагает использовать setVideoURI для потоковой передачи, но я не понимаю, какой URL я должен использовать.
http://
и rtsp://
может сработать, если видео было закодировано правильно.
Есть ли у кого-нибудь пример URL-адреса для видео, которое можно транслировать в Эмулятор Android с использованием кода VideoViewDemo?
Это видео работает с MediaPlayer
, за исключением Nexus One.
Редактировать:На самом деле, эта ссылка работает и с Nexus One.
Другие советы
Это работает для простых случаев, но только тогда, когда не требуется делать какие-то специальные приготовления для запросов на получение потока.
В этом руководстве показан пример ручной эмуляции потоковой передачи аудио, но его можно немного переработать для воспроизведения видео:
http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/
(обязательно используйте FileDescriptor
при настройке dataSource
, API с тех пор немного изменился).
VideoView может транслировать только видео 3gp, но я рекомендую этот код для потоковой передачи вашего видео.
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}
Или Нажмите здесь, чтобы посмотреть руководство по потоковой передаче видео на Android.