MediaStream: removeTrack() ã¡ã½ãã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2017å¹´9æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
removeTrack() 㯠MediaStream ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãã¹ããªã¼ã ãã MediaStreamTrack ãé¤å»ãã¾ãã
æ§æ
removeTrack(track)
弿°
track-
ã¹ããªã¼ã ããé¤å»ããã
MediaStreamTrackã§ãã
è¿å¤
ãªã (undefined)ã
ä¾
次ã®ä¾ã¯ã MediaStream ããé³å£°ãã©ãã¯ã¨æ åãã©ãã¯ãé¤å»ããæ¹æ³ã示ãã¦ãã¾ãã fetchStreamFunction ã¯ã fetchStreamButton ã®ã¤ãã³ããã³ãã©ã¼ã§ãããã®ãã¿ã³ãã¯ãªãã¯ãããã¨ãã·ã¹ãã ã®æ©å¨ããé³å£°ã¨åç»ããã£ããã£ããã¾ãã removeTracksFunction ã¯ã removeTracksButton ã®ã¤ãã³ããã³ãã©ã¼ã§ãããã®ãã¿ã³ãã¯ãªãã¯ãããã¨ãé³å£°ã¨æ åãã©ãã¯ã MediaStream ããé¤å»ããã¾ãã
let initialStream = null;
let newStream = null;
let fetchStreamButton = document.getElementById("fetchStream");
let removeTracksButton = document.getElementById("removeTracks");
async function fetchStreamFunction() {
initialStream = await navigator.mediaDevices.getUserMedia({
video: { width: 620, height: 310 },
audio: true,
});
if (initialStream) {
await attachToDOM(initialStream);
}
}
async function attachToDOM(stream) {
newStream = new MediaStream(stream.getTracks());
document.querySelector("video").srcObject = newStream;
}
async function removeTracksFunction() {
let videoTrack = newStream.getVideoTracks()[0];
let audioTrack = newStream.getAudioTracks()[0];
newStream.removeTrack(videoTrack);
newStream.removeTrack(audioTrack);
// ã¹ããªã¼ã ã空ã«ãªã
console.log(newStream.getTracks());
}
fetchStreamButton.addEventListener("click", fetchStreamFunction);
removeTracksButton.addEventListener("click", removeTracksFunction);
仿§æ¸
| 仿§æ¸ |
|---|
| Media Capture and Streams > # dom-mediastream-removetrack > |