我有一个音频和视频流,就像apprtc。我必须停止视频轨道并让音轨运行,例如网络摄像头从WebRTC发布,其他应用程序可以使用它。我怎么做?WebRTC发布视频输入,但有音频流运行
我已经开始用了诸如:
pc.getLocalStreams()[0].getVideoTracks()[0].stop()
但是,这是行不通的。
我有一个音频和视频流,就像apprtc。我必须停止视频轨道并让音轨运行,例如网络摄像头从WebRTC发布,其他应用程序可以使用它。我怎么做?WebRTC发布视频输入,但有音频流运行
我已经开始用了诸如:
pc.getLocalStreams()[0].getVideoTracks()[0].stop()
但是,这是行不通的。
我想这应该做你所要求的:
stream.getAudioTracks()[0].enabled = false;
track.enabled是使用(现在)正确的事情“静音”的影像;但它不会释放轨道/硬件。硬件是否可以被应用程序共享是一个操作系统问题。
目前唯一的方法是要求第二个音频流(这意味着第二个请求)或者只是从音轨创建一个新的流,然后停止()/释放第一个流,但是有没有简单的方法来使Firefox的工作(直到onnegotiationneeded支持重新邀请类型的操作,以及MediaStream基于轨道的构造函数,如果你想避免第二个权限请求 - 请注意,Chrome的permissiona模型可能会隐藏此从您)。
这是一个巨大的操作系统问题我会说,当使用WebRTC然后试图使用相机API(https://developer.mozilla.org/en-US/docs/DOM/Using_the_Camera_API?redirect=no)使浏览器崩溃甚至Android的相机应用程序也无法访问相机,我必须重新启动手机才能取回相机。 –
.enabled更像是“静音”,至少在Firefox和每个规范中放弃音轨/硬件。 – jesup
jesup是对的,'enabled'只是一个静音,它不会丢弃硬件。我不想停止音频,我想停下来放下视频。 –