2012-10-12 104 views
1

我有一個基於red5服務器的視頻聊天的問題。一切工作正常,但如果有人關閉瀏覽器而不是點擊「停止聊天」按鈕,它們的流中會有最後一幀。所以它看起來像凍結流。 有沒有殺死這樣的流的選項?Red5 videochat freeze

回答

0

沒有選項,但你可以在Red5的應用程序的方法實現,例如實施方法:

/** 
* Notification that a broadcasting stream is closing. 
*/ 
@Override 
public void streamBroadcastClose(IBroadcastStream stream) { 
    //Notify all clients 
} 

,然後通過RTMP將消息發送到所有客戶端用戶已經離開,然後你可以在客戶端用戶界面中作出反應,並正確刪除/黑屏已經離開的用戶屏幕。

塞巴斯蒂安

+0

實際上,我的客戶端正在監聽NetStream事件以刪除視頻容器。這是一回事嗎?因爲它有效,但不是每次。 –

+0

不,我發佈的方法是您在服務器端實現的Java方法。然後,您將不得不創建RTMP消息「XYZ」,並在客戶端監聽NetConnetion(非NetStream)中的方法「XYZ」。 –

0

約熄火連接時,會突然終止(通過關閉瀏覽器或失去互聯網連接)的問題被稱爲鬼連接。

您可以在客戶端和服務器之間實施ping系統,以確定客戶端何時不再存在並生成與服務器端的斷開連接。

另外在客戶端斷開服務器應該通知其他客戶端和用戶的視頻應該隱藏(以避免顯示凍結幀)。

幽靈連接檢測和刪除斷開的用戶已被流行的視頻應用程序實現。您可以測試http://www.videowhisper.com/demos/conference/以查看它是否適用於您描述的場景。

您也可以使用Wowza Streaming Engine進行測試,以確定問題是否與Red5嚴格相關。