Я пытаюсь транслировать видео 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, x)?
Edit2: я начал сеанс XAMPP в своей локальной сети и поместил видео в папку. IP-адрес выглядит примерно так:
String uri = "http://192.168.1.107:8080/myfolder/myvideo.3gp";
и он работает, даже если это не потоковая передача, а что-то вроде активной загрузки (как пример в Интернете в моем первом редактировании).