Итак, у меня есть IP-камера, которая выводит видеопоток, с которым я могу подключиться через протокол rtsp. Я хочу показать это в своем приложении для Android, поэтому я создал видеообзор, используя следующий код;Задержка видеопотока и отсоединение видеоизображения с использованием потока ip-камеры
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-адрес. Итак, что я делаю неправильно, и есть ли лучший способ обработки потокового видео? В конечном итоге я хотел связать видео с некоторыми наложенными текстами и кнопками и, при необходимости, сделать скриншоты. На данный момент мне повезло, если я получаю видео в течение нескольких секунд, прежде чем он вырезает ...
Дополнительные комментарии;
У меня был некоторый успех, когда он работал в течение более длительного времени - так что это не всегда плохо, что затрудняет диагностику. Но когда он останавливается, он останавливается. Действительно ли видеообзор активно пытается подключиться, если он потерял соединение? Есть ли способ продемонстрировать это с индикатором прогресса, возможно, так что это не похоже на то, что он ничего не делает?