Я разрабатываю приложение для Android (Android 5.1) для воспроизведения видеопотока с IP-камеры по протоколу RTSP.
Я получаю и отображаю видеопоток стандартными методами Android VideoView
:
videoView.setVideoURI(Uri.parse("rtsp://192.168.1.13:8888/test"));
try {
videoView.start();
}
catch (Exception ex) {
ex.printStackTrace();
}
Все работает нормально, но подключение к камере идет слишком долго. Это занимает около 5-7 секунд (слишком долго для моих нужд), прежде чем видео начнет воспроизводиться.
Есть ли способ ускорить время соединения?
@ n247s Точно установил соединение. Воспроизведение не имеет задержки.
Тем не менее связь должна быть установлена. Поэтому я предполагаю, что вы вообще не можете обойти задержку соединения. Единственное, что вы можете сделать, это поддерживать ресурс/соединение, чтобы повторная активация не занимала много времени. (вероятно, выполнено с помощью VideoView#suspend()
?)
Наконец нашел решение.
Проблема заключалась в том, что Android' MediaPlayer
, являющийся частью VideoView
, имеет фиксированный размер буфера, который нельзя изменить.
Так что я использовал Google' ExoPlayer
, который предоставляет такую функцию.
Уменьшение размера буфера решило мою проблему.
P.S.
Поддержание ресурса/соединения с помощью VideoView.suspend()
или VideoView.pause()
для возобновления трансляции позже не имеет значения.
Вы имеете в виду, что соединение занимает так много времени, или задержка воспроизведения настолько велика?