2016-08-05 50 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. 
    } 
     }