2016-08-05 20 views
11

Trong ứng dụng Android của tôi đang hiển thị phát video trực tiếp bằng cách sử dụng thư viện LibVLC. Để kết nối Máy chủ SSH tôi đã sử dụng thư viện jsch.Cách tránh thời gian chờ của phiên trong Android

Khi tôi chạy ứng dụng, sau khi video kết nối phiên chạy đúng cách. và khi tôi thu nhỏ ứng dụng trong 3-4 phút và tiếp tục lại, video vẫn chạy đúng cách. Nhưng khi tôi giảm thiểu ứng dụng trong 10 phút hoặc hơn và tiếp tục, nó hiển thị thông báo session timeout.

OnResume() Tôi đã cố gắng tạo phiên và createPlayer() nhưng vẫn không hoạt động.

Tôi đã thử bằng cách thay đổi thời gian kết nối phiên.

Có cách nào để tránh thời gian chờ của phiên trong khoảng thời gian dài như 30 phút hay không.

// ** SAU EDIT ** //

Tôi đã kiểm tra sau onResume() phiên vẫn còn kết nối và đăng nhập lỗi nói Connection reset by peer.

Điều đó có nghĩa gì? Đường hầm ssh có bị đóng không? Nếu có, làm thế nào để kiểm tra tình trạng đường hầm ssh?

Lỗi đăng nhập:

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

Tôi muốn giới thiệu rằng thay vì thay đổi thời gian chờ, bạn thực hiện một cơ chế tự động kết nối lại bất cứ khi nào bạn sơ yếu lý lịch ứng dụng. Bạn không bao giờ có thể chắc chắn 100% rằng kết nối mạng của bạn sẽ vẫn mở trong thời gian dài - chỉ cần nghĩ đến việc người dùng thay đổi từ Wifi này sang Wifi khác hoặc mất kết nối tạm thời. –

+0

Tôi đã thêm một mã để kết nối lại với phiên, nhưng nó cho tôi thấy lỗi Demux –

+0

Có vẻ như bạn đang gặp phải một lỗi khác ngay bây giờ. Tôi sẽ đề nghị bạn đăng phần có liên quan của mã của bạn và lỗi/ngoại lệ chính xác. –

Trả lời

1

Các lỗi demux bạn đang nhận được đang xảy ra ở mức độ cao hơn trong ngăn xếp. Trước tiên, bạn cần xác thực rằng kết nối SSH cơ bản vẫn tốt. Để làm như vậy, hãy kiểm tra và nếu cần thiết kết nối lại khi ứng dụng của bạn tiếp tục:

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

Khi bạn đã xác thực kết nối SSH, bạn sẽ có thể tiếp tục luồng qua LibVLC. Tuy nhiên, nếu bạn vẫn thấy lỗi tại thời điểm đó, bạn sẽ phải hiển thị mã mà bạn sử dụng để mở/tiếp tục luồng.

0
 public void onResume() { 
     if (!session.isConnected()) { 
    reconnect(); // needs to create a new session, open a channel, etc. 
    } 
     } 
Các vấn đề liên quan