【发布时间】:2021-02-15 15:23:48
【问题描述】:
我正在录制一个画布流 (streamA),其中包含从视频元素导出并导入到 outputcanvas 元素中的视频帧。
var video = document.createElement("VIDEO");
video.src = "test.mp4";
var outputcanvas = document.createElement("CANVAS");
outputcanvas.width = 1920;
outputcanvas.height = 1080;
var ctx = outputcanvas.getContext("2d");
var streamA = outputcanvas.captureStream(60);
然后我使用网络音频 api 将视频音频连接到流
var source;
var dest;
var getContext = function() {
var ac = null;
if ( !window.AudioContext && !window.webkitAudioContext ) {
console.warn('Web Audio API not supported in this browser');
} else {
ac = new ( window.AudioContext || window.webkitAudioContext )();
}
return function() {
return ac;
};
}();
var audioCtx = getContext();
source = source || audioCtx.createMediaElementSource(video);
dest = dest || audioCtx.createMediaStreamDestination();
source.connect(dest);
var audioTrack = dest.stream.getAudioTracks();
streamA.addTrack(audioTrack[0]);
video.play(); //this is inside a request animation so each frame is copied to the canvas
ctx.drawImage(video,0,0,outputcanvas.width,outputcanvas.height);
一切都很好,我可以将录制的视频和音频很好地输出到 mp4。
我遇到的问题是在我录制视频并重置流之后。
视频元素的音频节点已断开。
有没有一种简单的方法可以重新连接它?因为除非我将其静音,否则视频元素中的视频将不再播放。
【问题讨论】:
标签: javascript html5-canvas web-audio-api mediarecorder