Итак, у меня есть IP-камера, которая выводит видеопоток, к которому я могу подключиться по протоколу rtsp. Я хочу отобразить это в своем приложении для Android, поэтому я настроил видеопросмотр, используя следующий код:
VideoView vv = (VideoView)this.findViewById(R.id.videoView);
Uri uri = Uri.parse("rtsp://username:[email protected]:554/1/stream3");
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
Я помещаю это в onCreate() основного класса активности, поэтому, когда приложение загружается, оно автоматически подключается и начинает потоковую передачу. Мой опыт в этом заключается в том, что это работает, но в конечном итоге становится прерывистым и или просто останавливается случайным образом и, кажется, никогда не возвращается к работе снова. Мне нужно закрыть приложение, очистить его из памяти и перезапустить, чтобы вернуть его, но вскоре после этого оно теряет связь, что означает, что оно практически бесполезно.
Я также обнаружил, что при прикосновении к объектам на экране, таким как меню или кнопки, он немного отстает, но это может быть просто совпадением - я не могу сказать наверняка.
Дело в том, что поток идеально подходит с ПК в той же сети через VLC, используя тот же URL. Итак, что я делаю неправильно, и есть ли лучший способ обработки потокового видео? В конечном итоге я хотел соединить видеопросмотр с наложенным текстом и кнопками и, возможно, делать скриншоты, когда это необходимо. На данный момент мне повезло, если я получаю видео на несколько секунд, прежде чем оно обрывается...
Некоторые дополнительные комментарии;
Мне удалось запустить его в течение более длительного периода времени, так что это не всегда плохо, что затрудняет диагностику. Но когда он останавливается, он останавливается. Видеопросмотр активно пытается восстановить соединение, если соединение было потеряно? Возможно, есть способ продемонстрировать это с помощью индикатора прогресса, чтобы не было похоже, что он ничего не делает?