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

Posted

技术标签:

【中文标题】检测视频/音频是不是在 html5 视频标签中停止【英文标题】:Detect if video/audio is stopped in html5 video tag检测视频/音频是否在 html5 视频标签中停止 【发布时间】:2013-12-23 19:08:24 【问题描述】:

使用

WebRTC、html5、javascript

说明

例如,用户 User1User2 之间有一个 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】:

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

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

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

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

【讨论】:

那个答案是正确的(目前,可能是WebRTC将来会支持状态)。

以上是关于检测视频/音频是不是在 html5 视频标签中停止的主要内容,如果未能解决你的问题,请参考以下文章

html5 播放事件与视频标签中的播放事件

HTML5视频标签,javascript检测播放状态?

在父类更改时停止 HTML5 音频/视频

HTML5 向网页嵌入视频和音频

从 HTML5 视频中获取音频

从html5中的视频标签中读取音频频谱