Подтвердить что ты не робот

Использование VideoView для потоковой или прогрессивной загрузки видео

Я смущен тем, как VideoView можно использовать для воспроизведения видео: из локального файла, в качестве прогрессивной загрузки и потоковой передачи.

Этот пример работает для меня (по крайней мере, на 1.5 и 2.0), загружая файл и воспроизводя его локально.

Но нужно ли загружать видео перед воспроизведением: возможно ли воспроизводить видео в виде прогрессивной загрузки или потоковой передачи, просто используя setVideoPath или setVideoURI, как в VideoViewDemo в образцах API?

Код VideoViewDemo предлагает использовать setVideoURI для потоковой передачи, но я не понимаю, какой URL я должен использовать. У кого-нибудь есть пример URL-адреса для видео, которое можно транслировать в эмулятор Android с помощью кода VideoViewDemo?

Можно ли использовать прогрессивную загрузку с VideoViewDemo? Я получаю сообщение "извините, это видео не может быть воспроизведено" с помощью setVideoPath с URL-адресами, которые отлично работают с примером блога, связанным с выше. (Это проблема в эмуляторе? Я пробовал 1.5 и 2.0.)

Я нашел много примеров и документации в Интернете, но пока ничего не ответил на этот вопрос.

4b9b3361

Ответ 1

Можно ли воспроизводить видео как прогрессивная загрузка или потоковая передача, просто используя setVideoPath или setVideoURI, как в VideoViewDemo в образцы API?

Должно. Он, безусловно, работает с MediaPlayer, а VideoView - это всего лишь 200 строк обертки вокруг MediaPlayer и SurfaceView.

Код VideoViewDemo предлагает использовать setVideoURI для потоковой передачи, но я не ясно, какой URL я должен быть используя.

http:// и rtsp:// могут работать, если видео было правильно закодировано.

Есть ли у кого-то пример URL-адреса для видео, которое можно Android-эмулятор с использованием Код VideoViewDemo?

Это видео работает с MediaPlayer, за исключением Nexus One.

РЕДАКТИРОВАТЬ: На самом деле эта ссылка работает и с Nexus One.

Ответ 2

Он работает для простых случаев, но только тогда, когда не требуется делать некоторые пользовательские приготовления для запросов для получения потока.

В этом учебном руководстве показан пример ручной эмуляции потоковой передачи звука, но для воспроизведения видео может быть немного рефакторинга:

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

(не забудьте использовать FileDescriptor при настройке dataSource, API немного изменился с тех пор).

Ответ 3

VideoView может воспроизводить только видеоролики Stream 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.