我设法拼凑了一个脚本,该脚本记录了来自用户网络摄像头的流,并因此给了我一个Blob。
以下是相关代码,在录制停止时会触发该代码:
this.recorder.addEventListener('stop', evt => {
let blob = new Blob(this.recorder.chunks, {'type': 'video/webm; codecs=opus'});
this.els.player.src = window.URL.createObjectURL(blob);
}, false);
我的问题是视频播放器不显示录制的视频。请注意,video/webm; codecs=opus
指令改编自this tutorial,该指令构建了一个类似的应用程序来录制(然后播放)音频。
收到的SRC类似于:
blob:https://localhost/7e6ef6c8-5008-422a-af5a-bbe396f1c810
如果我转到此URL,它确实会向我显示录制的视频-一切都很好。
但是它不会在<video />
标签中播放。
有趣的是,如果我将脚本修改为仅通过以下方式获取音频,
let blob = new Blob(this.recorder.chunks, {'type': 'audio/ogg; codecs=opus'});
...然后将其馈送到<audio />
标记中,它会播放。看来只是视频无法播放。
我在做什么错了?