2013-12-23 246 views
0

使用

的WebRTC,HTML5,JavaScript的檢測,如果視頻/音頻在HTML5視頻標籤停止

說明

比如有用戶之間的WebRTC視頻通話用戶1用戶2 。試想用戶2命中一些靜音按鈕(它做了類似localStream.getAudioTracks()[0] .enabled = false)。在客戶端用戶1現在沒有音頻,但視頻仍然會(這是很好的)。

問題

我想檢測是否音頻或視頻不從User1的了接收由用戶1 而沒有任何額外的信令。我無法看到任何API檢測到用於音頻或/和視頻軌道的getBytesLoaded,以檢測丟失並顯示適當的消息。我甚至無法找到檢測音頻或/和視頻是否停止的功能。

Note: I don't think it is related to stop/pause events 

謝謝!

回答

2

使用WebRTC getStats API,您可以週期性地在peerConnection實例中調用方法getStats,並傳遞一個將用stats對象調用的回調函數。

在該對象中,您可以找到有關當前audioOutputLevel的統計信息,並且如果您觀看發件人將麥克風靜音(禁用audioTrack)時返回的值,則會看到較低的值。

使用數據包數量或字節數不會提供非常有用的信息,因爲WebRTC實現了Confort Noise,所以您會看到很多數據包到達。總而言之,在不發送任何信號信息的情況下,唯一的方法就是使用統計信息,並且您必須挖掘並找到可行的模式,因爲您不會發現任何狀態變化。

+0

這個答案是正確的(此時,WebRTC可能會支持未來的狀態)。 – igorpavlov