我正在使用webRTC和Node.js創建音頻/視頻和聊天應用程序。我需要將相機設備靜音並取消靜音。 目前,我可以斷開連接並且對方無法看到我,但是我看到的問題是它不會斷開相機的連接。它仍然保持活動狀態並連接,因爲我看到相機閃光燈仍然亮着。如何使用getUserMedia和webRTC連接斷開相機設備
我需要幫助如何在靜音時斷開連接,並在取消靜音時將其連接回去。我需要與我們在Skype視頻通話中看到的功能相同的功能。
我正在使用webRTC和Node.js創建音頻/視頻和聊天應用程序。我需要將相機設備靜音並取消靜音。 目前,我可以斷開連接並且對方無法看到我,但是我看到的問題是它不會斷開相機的連接。它仍然保持活動狀態並連接,因爲我看到相機閃光燈仍然亮着。如何使用getUserMedia和webRTC連接斷開相機設備
我需要幫助如何在靜音時斷開連接,並在取消靜音時將其連接回去。我需要與我們在Skype視頻通話中看到的功能相同的功能。
當您獲得媒體時,在您的成功回調函數中,必須將本地流保存在一個變量中。然後,當你想停止你的流,你可以做localstream.stop();
要重新開始,你可以重複調用你的getUserMedia()
方法再次。
它在Firefox和Chrome之間有所不同。這些步驟按此順序適用於我。
1)將視頻元素上的src
屬性設置爲空字符串''
。
2)在將其作爲函數調用之前,確保stop
方法存在。 Firefox沒有它,如果你嘗試運行它,你的代碼會拋出一個錯誤。
if (localStream && localStream.stop) {
localStream.stop();
}
3)調用cameraStream.stop()(或不)後,設置localStream = null
。 (也許實際上並非必要,但是讓對象得到垃圾回收並不會造成什麼傷害,而當用戶要求再次啓動相機時,您可以檢查變量以查看是否需要在先前在開始一個新的之前流。)
Firefox一直支持mediastream.stop();它在我們的測試頁面mozilla.github.com/webrtc-landing中使用。另外,在調用stop()之前(至少在Firefox中),不需要將src設置爲「'」;停止()(根據規範)應停止捕獲,無論持有什麼手柄。如果你想確保它已經完全釋放,你需要按照前面提到的那樣清空它的任何句柄。 – jesup