Add pause and resume methods to MediaStreamTrack sources (closes #241)

This commit is contained in:
Vanilagy
2025-12-11 15:51:18 +01:00
parent 1ff8abdaab
commit 84dec01dfd
3 changed files with 140 additions and 8 deletions
+18 -6
View File
@@ -25,29 +25,41 @@
target: new Mediabunny.BufferTarget(),
format: new Mediabunny.Mp4OutputFormat(),
});
let videoSource = null;
let audioSource = null;
if (videoTrack) {
const source = new Mediabunny.MediaStreamVideoTrackSource(videoTrack, {
videoSource = new Mediabunny.MediaStreamVideoTrackSource(videoTrack, {
codec: 'avc',
bitrate: Mediabunny.QUALITY_MEDIUM
});
source.errorPromise.catch((d) => console.log("Hello?????", d));
videoSource.errorPromise.catch((d) => console.log("Hello?????", d));
output.addVideoTrack(source);
output.addVideoTrack(videoSource);
}
if (audioTrack) {
const source = new Mediabunny.MediaStreamAudioTrackSource(audioTrack, {
audioSource = new Mediabunny.MediaStreamAudioTrackSource(audioTrack, {
codec: 'mp3',
bitrate: Mediabunny.QUALITY_MEDIUM
});
source.errorPromise.catch((d) => console.log("Hello!!???", d));
audioSource.errorPromise.catch((d) => console.log("Hello!!???", d));
output.addAudioTrack(source);
output.addAudioTrack(audioSource);
}
await output.start();
setTimeout(() => {
videoSource?.pause();
audioSource?.pause();
setTimeout(() => {
videoSource?.resume();
audioSource?.resume();
}, 1000);
}, 1000);
await new Promise(resolve => setTimeout(resolve, 5000));
await output.finalize();