You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MediaRecorder设置直播视频预览源时出现错误求助

MediaRecorder直播预览错误解决办法

你的判断完全正确,错误根源就是liveVideo.src = stream;这行代码。

浏览器的<video>元素的src属性只接受URL格式的字符串,当你直接把MediaStream对象赋值给它时,浏览器会自动将对象转为字符串[object MediaStream],并把这个字符串当作请求路径去访问,于是就出现了GET http://127.0.0.1:5000/[object%20MediaStream] 404 (NOT FOUND)的错误;同时因为这个路径不是合法的视频源,也就抛出了DOMException: Failed to load because not supported source was found。

正确的做法是使用专门的srcObject属性来绑定MediaStream,这是HTML5为媒体元素提供的标准属性,用于直接关联媒体流。

修改后的代码如下:

window.onload = function () {
  recordButton = document.getElementById('record');
  stopButton = document.getElementById('stop');

  // get video & audio stream from user
  navigator.mediaDevices.getUserMedia({
    audio: true,
    video: true
  })
  .then(function (stream) {
    liveStream = stream;

    var liveVideo = document.getElementById('live');
    // 替换为srcObject绑定媒体流
    liveVideo.srcObject = stream;
    liveVideo.play();

    recordButton.disabled = false;
    recordButton.addEventListener('click', startRecording);
    stopButton.addEventListener('click', stopRecording);

  });
};

另外补充一点:调用liveVideo.play()时可能会因为浏览器的自动播放策略抛出错误,建议用Promise捕获处理,比如:

liveVideo.play().catch(err => {
  console.error('播放失败:', err);
});

内容的提问来源于stack exchange,提问作者Yuvan Chikka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:06:09