Использование VideoView для потоковой передачи или прогрессивной загрузки видео - PullRequest
41 голосов
/ 13 января 2010

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

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

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

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

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

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

Ответы [ 3 ]

19 голосов
/ 13 января 2010

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

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

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

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

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

Это видео работает с MediaPlayer, кроме Nexus One.

EDIT : На самом деле эта связь работает и с Nexus One.

2 голосов
/ 24 сентября 2010

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

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

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

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

0 голосов
/ 01 июня 2013

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 Video Streaming .

...