Как избежать таймаута сеанса в Android

В моем приложении Android покажут потоковое видео в реальном времени с помощью библиотеки LibVLC. Для подключения сервера SSH я использовал библиотеку jsch.

Когда я запускаю приложение, после успешного подключения сеансового видео. и когда я скрою приложение на 3-4 минуты и снова возобновляю видео, вы будете работать правильно. Но когда я скрою приложение на 10 или более минут, и при возобновлении он показывает сообщение session timeout.

OnResume() Я попытался создать сеанс и createPlayer(), но все еще не работал.

Я попытался изменить время сеанса связи.

Есть ли способ избежать таймаута сеанса в течение длительного периода, например, 30 минут.

//** ПОСЛЕ ИЗМЕНЕНИЯ **//

Я проверил после OnResume() сеанс все еще подключен, а в журнале ошибок Connection reset by peer.

Что это значит? Закрыт ли туннель ssh? Если да, то как проверить статус туннеля ssh?

Журнал ошибок:

08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: live555 demux: Не удалось подключиться с помощью rtsp://localhost: 8554/video.ts 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core demux: не доступны модули access_demux 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: основной вход: создание доступа 'rtsp' location = 'localhost: 8554/video.ts', path = '(null)' 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: основной доступ: поиск соответствия модуля доступа "rtsp": 15 кандидатов 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: сеть: подключение к локальному порту 8554 08-09 10: 52: 15.278 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: соединение выполнено успешно (socket = 36) 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: доступ к основным файлам: ошибка чтения: подключение reset by peer 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: access_realrtsp access: rtsp connected 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample W/VLC: access_realrtsp доступ: только реальные /helix rtsp-серверы, поддерживаемые на данный момент 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: нет доступных модулей доступа 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: вход ядра: открытие rtsp://localhost: 8554/video.ts 'failed 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: ввод сердечника: ваш вход не открывается 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: основной вход: VLC не может открыть MRL 'rtsp://localhost: 8554/video.ts'

Ответ 1

Ошибка demux, которую вы получаете, происходит на более высоком уровне в стеке. Вы должны сначала подтвердить, что базовое SSH-соединение все еще хорошо. Для этого проверьте и при необходимости повторите попытку, когда ваше приложение возобновится:

public void onResume() {
    if (!session.isConnected()) {
        reconnect(); // needs to create a new session, open a channel, etc.
    }
}

Как только вы подтвердите соединение SSH, вы сможете возобновить поток через LibVLC. Если, однако, вы по-прежнему видите ошибку в этой точке, вам нужно будет показать код, который вы используете для открытия/возобновления потока.

Ответ 2

Похоже, вы открываете новый поток, когда у вас уже открыт существующий поток. Поместите проверку для создания нового потока только тогда, когда старый поток отключен.

Следующая ссылка может помочь:

https://github.com/bastimeyer/livestreamer-twitch-gui/issues/181

Ответ 3

     public void onResume() {
      if (!session.isConnected()) {
     reconnect(); // needs to create a new session, open a channel, etc.
    }
       }