我正在尝试从 MediaStream 中删除曲目。MediaStream.removeTrack()
从流中删除轨道,但相机灯仍然亮着,表示相机仍然处于活动状态。
这引用了stop()
一种我认为可以完全停止相机的方法,但是在 chrome 中我得到了"Object MediaStreamTrack has no method 'stop'"
有没有办法解决这个问题,还是我必须停止整个流,然后用我不想消失的轨道重新创建它?例如,我想在音轨仍然存在时删除视频轨道。
我正在尝试从 MediaStream 中删除曲目。MediaStream.removeTrack()
从流中删除轨道,但相机灯仍然亮着,表示相机仍然处于活动状态。
这引用了stop()
一种我认为可以完全停止相机的方法,但是在 chrome 中我得到了"Object MediaStreamTrack has no method 'stop'"
有没有办法解决这个问题,还是我必须停止整个流,然后用我不想消失的轨道重新创建它?例如,我想在音轨仍然存在时删除视频轨道。
您需要在 MediaStream 上调用 stop(),而不是 MediaStreamTrack。
看看simpl.info/gum。从控制台调用stream.stop()
:录制停止,摄像机灯熄灭。
停止特定的媒体流,也许这有帮助:(链接)
function stopStreamedVideo(videoElem) {
const stream = videoElem.srcObject;
const tracks = stream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
videoElem.srcObject = null;
}
看起来处理这个问题的正确方法是停止你的MediaStream
,重新创建(并重新附加)它作为纯音频,然后重新协商PeerConnection
会话。不幸的是,Firefox 目前不支持会话中的重新协商。
因此,唯一可行的破解方法是按照此处的建议PeerConnection
使用新的重新创建(请参阅“添加视频通话中”)。MediaStream