检测视频/音频是否在html5视频标签中停止

时间:2013-12-23 19:08:24

标签: javascript html5 audio video webrtc

使用

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

谢谢!

1 个答案:

答案 0 :(得分:2)

使用WebRTC getStats API,您可以定期调用peerConnection实例中的方法getStats,并传递将使用stats对象调用的回调函数。

在该对象中,您可以找到有关当前audioOutputLevel的统计信息,如果您看到发件人将麦克风静音(禁用audioTrack)时返回的值,您会看到较低的值。

使用数据包数或字节数不会提供非常有用的信息,因为WebRTC实现了Confort Noise,因此您将看到许多数据包到达。

总而言之,在没有发送任何信号信息的情况下,唯一的方法是使用统计数据,你必须挖掘并找到一个有效的模式,因为你不会发现任何状态变化。