HTTP потоковая передача с VLC плеера на AVD с помощью Android VideoView - PullRequest
1 голос
/ 27 октября 2011

Я пытаюсь транслировать 3gp видео на эмуляторе Android (v. 2.3.3 - Eclipse IDE). Я готовлю поток с медиаплеером VLC, используя HTTP через порт 9090 без какого-либо транскодирования. Для тестирования потоковой передачи я открываю новый экземпляр VLC и подключаясь к своему локальному ip (192.168.1.107:9090), я вижу видео без проблем. Теперь я пытаюсь на Android с помощью этого кода на метод onCreate (Bundle) моего класса Activity:

VideoView video = (VideoView) findViewById(R.id.video);
String uri = "http://192.168.1.107:9090";
video.setVideoURI(Uri.parse(uri));
video.setMediaController(new MediaController(this));
video.requestFocus();
video.start();

но при запуске приложения появляется сообщение: «Невозможно воспроизвести видео». Вот логкат:

D/MediaPlayer(454): Couldn't open file on client side, trying server side
E/MediaPlayer(454): error (1, -2147483648)
E/MediaPlayer(454): Error (1,-2147483648)
D/VideoView(454): Error: 1,-2147483648

Я также пытался использовать URI 10.0.2.2:9090 с тем же результатом и 127.0.0.1:9090 с тем же сообщением и диапазоном ошибок (1, -111)

Обратите внимание, что то же видео отлично работает, если я воспроизведу его на локальном компьютере:

String uri = "android.resource://" + getPackageName() + "/" + R.raw.myvideo;

Я использую Windows 7 x64.

Редактировать: я также пытался загрузить видео в общую папку моего Dropbox с той же ошибкой, но с использованием исходной ссылки это работает! Есть ли проблема с моей локальной сетью? Что значит ошибка (1, х)?

Edit2: я начал сеанс XAMPP в своей локальной сети и поместил видео в папку. IP-адрес выглядит примерно так:

String uri = "http://192.168.1.107:8080/myfolder/myvideo.3gp";

и это работает, даже если это не потоковая передача, а что-то вроде активной загрузки (как пример в Интернете в моем первом редактировании).

1 Ответ

0 голосов
/ 28 октября 2011

Вы проверили, что ваш локальный веб-сервер доставляет видео с правильным Content-Type (или типом пантомимы), установленным в заголовке ответа HTTP?

Ваша исходная ссылка использует Content-Type: video/3gpp

Для VLC вы можете указать контент или тип пантомимы на странице настроек. В соответствии с документацией вам необходимо отредактировать строку параметров и добавить

:mime=video/3gpp
...