У меня есть 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. Есть ли способ сохранить обе видеодорожки в потоке, но выбрать, какая из них воспроизводится в данный момент в видеоэлементе?
Пока единственное, что сработало, это удалить одну из видеодорожек из потока, чтобы другая могла воспроизводиться, но я хотел бы сохранить обе видеодорожки в потоке, чтобы я мог переключать их ч/б.