Я пытаюсь транслировать 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";
и это работает, даже если это не потоковая передача, а что-то вроде активной загрузки (как пример в Интернете в моем первом редактировании).