我有MediaStream
1 个音轨和 2 个视频轨。此流是通过将来自的音频和视频轨道与来自navigator.mediaDevices.getUserMedia
的视频轨道相结合而创建的navigator.mediaDevices.getDisplayMedia
。
var camStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true, width: "1280"});
var screenStream = await navigator.mediaDevices.getDisplayMedia({video: true, width: "1280"});
var screenTrack = screenStream.getVideoTracks()[0];
camStream.addTrack(screenTrack);
此时,camStream
有 1 个音轨和 2 个视频轨。
我有一个 HTML 元素<video id="local-video"></video>
,通过设置 srcObject 属性来播放流:
document.getElementById("local-video").srcObject = camStream;
问题是我无法选择正在播放的曲目。camStream 视频轨道总是在 screenStream 视频轨道上播放。有没有一种方法可以让我将两个视频轨道都保留在流中,但选择视频元素中当前正在播放的轨道?
到目前为止,唯一可行的方法是从流中删除一个视频轨道,以便另一个可以播放,但我想将两个视频轨道都保留在流中,以便我可以黑白切换它们。