2016-08-05 76 views
11

會話超時在我的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: Failed to connect with rtsp://localhost:8554/video.ts 08-09 10:52:15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core demux: no access_demux modules matched 08-09 10:52:15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core input: creating access 'rtsp' location='localhost:8554/video.ts', path='(null)' 08-09 10:52:15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core access: looking for access module matching "rtsp": 15 candidates 08-09 10:52:15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core access: net: connecting to localhost port 8554 08-09 10:52:15.278 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core access: connection succeeded (socket = 36) 08-09 10:52:35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: core access: read error: Connection 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 access: only real/helix rtsp servers supported for now 08-09 10:52:35.823 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core access: no access modules matched 08-09 10:52:35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: core input: open of rtsp://localhost:8554/video.ts' failed 08-09 10:52:35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: core input: Your input can't be opened 08-09 10:52:35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: core input: VLC is unable to open the MRL 'rtsp://localhost:8554/video.ts'

+0

我會建議,而不是改變超時,您實現自動重新連接時,您的應用程序恢復的機制。您永遠無法100%確定您的網絡連接將保持長時間的打開狀態 - 只需考慮用戶從一個Wifi切換到另一個或暫時丟失連接即可。 –

+0

我已經添加了一個代碼來重新連接會話,但它顯示我Demux錯誤 –

+0

這聽起來像你現在正在得到一個不同的錯誤。我建議你發佈你的代碼的相關部分和確切的錯誤/例外。 –

回答

1

你所得到的解複用誤差在堆棧中的較高水平發生。您需要首先驗證底層SSH連接是否仍然良好。要做到這一點,檢查並在必要時重新連接時,您的應用程序恢復:

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

一旦你驗證了SSH連接,你應該能夠通過LibVLC恢復流。但是,如果您仍然在此時看到錯誤,則必須顯示用於打開/恢復流的代碼。

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