我有一个带有音频和视频的流,就像apprtc 一样。我必须停止视频轨道并运行音轨,例如从 WebRTC 释放网络摄像头,其他应用程序可以使用它。我怎么做?
我从以下方面开始:
pc.getLocalStreams()[0].getVideoTracks()[0].stop()
但是,这不起作用。
我认为这应该满足您的要求:
stream.getAudioTracks()[0].enabled = false;
track.enabled 是(目前)用来“静音”视频的正确方法;但它不会释放轨道/硬件。应用程序是否可以共享硬件是操作系统问题。
目前这样做的唯一方法是仅请求第二个音频流(这意味着第二个请求)或仅从音轨构造一个新流,然后停止()/释放第一个流,但没有简单的方法使该功能在 Firefox 中仍然有效(直到重新邀请类型操作支持 onnegotiationneeded,如果您想避免第二个权限请求,则基于 MediaStream 轨道的构造函数 - 请注意,Chrome 的权限模型可能会对您隐藏这一点)。