WebRTC 检查 Chrome 上摄像头和麦克风是否正在使用

3
有没有可能检查相机和麦克风是否被其他PC应用程序(例如Skype)使用?
问题是,我能够获取流对象并在两台计算机之间建立连接,但是没有视频也没有声音,因为设备正在Skype中使用。 我需要的是一种方法来检测设备是否忙碌,以便告诉用户关闭正在使用相机和麦克风的应用程序。
我知道可以通过MediaStreamTrack.getSources()检查PC上是否有任何设备,但它不提供有关设备状态的任何信息。
2个回答

2
“testrtc” 项目有一个测试,可以检测麦克风是否无声,这可能有助于确定返回的音频轨道是否是静音状态。此外,还有一个类似的视频测试,用于检测冻结或黑屏帧。testrtc here video test

我成功地检测到了视频测试失败的情况,但是麦克风测试在Skype通话期间始终成功。 - foobars
大家好消息!显然,如果有多个应用程序正在使用麦克风,则麦克风不会变得繁忙。 - foobars

1

没有直接的方法,但是如果检查设备是否存在,getUserMedia应该会抛出错误和/或返回比您预期的更少的音频/视频轨道。

可以通过MediaStreamTrack.getSources或(最好)符合规范的navigator.mediaDevices.enumerateDevices来检测设备。


您的解决方案仅检测设备是否已禁用、权限未被授予或没有设备存在。我需要的是一种检测设备是否繁忙的方法。 - foobars

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接