WebRTC,HTML5,JavaScript
例如,用户 User1 和 User2 之间存在WebRTC视频通话。想象一下, User2 点击一些静音按钮(类似 localStream.getAudioTracks()[0] .enabled = false )。在 User1 的客户端,现在没有音频,但视频仍然存在(这很好)。
我想检测 User1 User1 是否再没有收到音频或视频,而没有任何其他信号 。我看不到任何API来检测音频或/和视频轨道的getBytesLoaded之类的内容,以检测丢失并显示相应的消息。我甚至找不到检测音频或/和视频是否停止的功能。
Note: I don't think it is related to stop/pause events
谢谢!
答案 0 :(得分:2)
使用WebRTC getStats API,您可以定期调用peerConnection实例中的方法getStats
,并传递将使用stats对象调用的回调函数。
在该对象中,您可以找到有关当前audioOutputLevel
的统计信息,如果您看到发件人将麦克风静音(禁用audioTrack)时返回的值,您会看到较低的值。
使用数据包数或字节数不会提供非常有用的信息,因为WebRTC实现了Confort Noise,因此您将看到许多数据包到达。
总而言之,在没有发送任何信号信息的情况下,唯一的方法是使用统计数据,你必须挖掘并找到一个有效的模式,因为你不会发现任何状态变化。