MediaRecorder.ondataavailable - 数据大小始终为 0

2023-12-11

我正在尝试使用 Web API Media Recorder 在浏览器中录制用户的声音。

在此阶段,我对录制后的音频所做的就是将其添加到音频元素的源中并进行播放。

当我停止录音机时,会触发“ondataavailable”事件,但数据大小为0,并且无法播放任何内容。

这是我的代码所在的位置。我正在使用反应。任何想法将不胜感激!

handleRecording (stream) {
 const recordedChunks = this.state.recordedChunks;
 const mediaRecorder = new MediaRecorder(stream)
 const _this = this;

 mediaRecorder.start();

 mediaRecorder.ondataavailable = function(e) {
  if (e.data.size > 0){
    recordedChunks.push(e.data);
    _this.setState({recordedChunks:recordedChunks});
  }
 }

 mediaRecorder.onstop = function(e) {
  if (recordedChunks){
    if(recordedChunks.length > 0) {
      const audio = document.querySelector('audio');
      audio.controls = true;
      const blob = new Blob(recordedChunks, { 'type' : 'audio/ogg; codecs=opus'      });
      const audioURL = window.URL.createObjectURL(blob);
      audio.src = audioURL;
    }
   }
  }

  this.setState({mediaRecorder:mediaRecorder});
},

startRecording () {
 const recording = true;
 this.setState({recording:recording});

 navigator.mediaDevices.getUserMedia({ audio: true, video: false })
    .then(this.handleRecording);
},

stopRecording () {
 const recording = false;
 const mediaRecorder = this.state.mediaRecorder;

 mediaRecorder.stop();
 this.setState({recording:recording, mediaRecorder:mediaRecorder});
}

文档链接:https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/ondataavailable


好吧,我想通了!

录制失败的原因是我没有启用 Chrome 的实验性 Web 平台功能。

我是通过偶然发现这个 WebRTC Media Recorder 示例网站了解到这一点的https://webrtc.github.io/samples/src/content/getusermedia/record/- 录音也不起作用。所以我知道这与我的特定代码无关。

要启用该标志,请在 Chrome 浏览器中转至 chrome://flags/,启用该标志并重新启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MediaRecorder.ondataavailable - 数据大小始终为 0 的相关文章

随机推荐

  • 如何使用 C++ 检测 Linux 中串行端口上运行的缓冲区溢出

    我有一个大问题 目前我正在通过以下钩子访问串行端口 fd open dev ttyS1 O RDWR O NOCTTY 然后我使用以下代码块从中读取 i select fd 1 rfds NULL NULL tv iLen read fd
  • json.parse 给出 Uncaught SyntaxError: Unexpected Token (Django json 序列化查询集)

    我遇到了错误Uncaught SyntaxError Unexpected Token当尝试解析 json 数据时 这是我的ajax代码 json2 js ajax type POST url best choose invoice ite
  • 将textarea中的html标签转换为富文本

    我正在使用 PHP 来填充文本区域
  • 使用 urllib2 登录网站 - Python 2.7

    好的 我将其用于 reddit 机器人 但我希望能够弄清楚如何登录任何网站 如果这有道理的话 我意识到不同的网站使用不同的登录表单等 那么我如何找出如何针对每个网站进行优化呢 我假设我需要在 html 文件中查找某些内容 但不知道是什么 我
  • JTextArea 作为控制台

    我在下面发布了两段代码 两个代码单独工作都很好 现在 当我运行 Easy 文件并单击 开始 按钮时 我希望实现 AddNumber 类 我的意思是说 除了在控制台上运行 AddNumber 之外 有什么方法可以让 AddNumber 在单击
  • 如何让 fwrite() 不加双引号?

    我使用以下命令读取了一个在其字段中包含 html 代码的 csv 文件fread 对其进行一些维护并将生成的数据表写入文件中fwrite 问题是现在所有的 html 都充满了四重引号 例如colspan 7 有的是qmethod参数 但我不
  • Visual Studio Online Build 将 git 输出视为错误

    我在 Visual Studio Online 中的构建尝试通过以下方式部署我的 Azure 网站Kudu 该脚本工作正常 并且部署也已完成 但由于某种原因 VSO 将 git 输出视为错误 并声明整个构建失败 看看下面的屏幕截图 一些细节
  • ggplot箱线图的位置躲避警告?

    我正在尝试使用以下代码使用 ggplot2 制作箱线图 p lt ggplot data aes d score reorder d names d scores median geom boxplot 我有称为名称的因素和称为分数的整数
  • 是否可以在 Magento 中以编程方式发送电子邮件?

    是否可以在 Magento 中以编程方式发送电子邮件 也许从自定义模块中的控制器中 您可以获取模板 填充其变量并发送电子邮件吗 Thanks 绝对地 以下是 Checkout 帮助程序的示例 mailTemplate Mage getMod
  • 设置 TabPage 标题颜色

    问候 我有一个选项卡控件 我希望其中 1 个选项卡的文本颜色在事件发生时更改 我找到了类似的答案C TabPage 颜色事件 and C Winform 如何设置 TabControl 而不是选项卡页 的基色但使用这些设置所有颜色而不是一种
  • PHP网站打开时总是显示空白页面,没有错误

    一 前提 PHP在Win2003 STD R2 SP2上加载在IIS6上 PHP 5213使用FastCGI MySQL 5145 客户向我发送了网站文件 我将其解压缩到C InetPub wwwroot
  • 为什么这个 Haskell 代码永远不会终止?

    我最近写了一些 Haskell 代码 但它永远不会终止 当我仔细检查我的代码后 问题归结为以下代码片段 main IO main print let a 10 in let a a in a Int 我想这一定与 Haskell 的懒惰有关
  • Always_comb 中的 SystemVerilog“if”语句“不是纯粹的组合逻辑”错误

    我很困惑 并且有点沮丧 我花了很多时间在 Modelsim 中研究一些 SystemVerilog 我已经达到了可以在我的硬件上测试它的某个阶段 但是在 Quartus 中编译不成功 我确实知道这可能会发生 但在这种情况下我的错误似乎没有意
  • 如何强制 Laravel 项目对所有路由使用 HTTPS?

    我正在开发一个需要安全连接的项目 我可以通过以下方式设置路由 uri 资产以使用 https Route get order details id uses gt OrderController details as gt order de
  • 防止EditText自动聚焦

    我有一个 Android 活动 有一个EditText在整个布局中 由于某种原因 每当活动开始时 键盘就会出现 我努力了all以下事项 将这两个放入OnStart FindViewById
  • R 图:如何使用 mtext 获取 las=1 的顶部对齐垂直标签

    我正在尝试使用在垂直轴上获得标签mtext水平阅读 las 1 并且位于轴的顶部 我的尝试是使用las 1 adj 1 当我不指定时我可以获得所需的展示位置las 1 但是一旦我添加las 1论证adj 1放置消失 这是带有代码的图片 左图
  • R:使用网格的馈送功能

    我正在使用 R 编程语言 我编写了这个循环 它在随机选择的输入 random 1 random 2 random 3 random 4 split 1 split 2 split 3 中评估以下 函数 实际上是一个 循环 100次 load
  • YouTube URL 的正则表达式

    我正在使用以下正则表达式来验证 YouTube 视频share url s var valid http youtube com youtu be alert valid test url return false 我希望正则表达式支持以下
  • python对象列表,根据对象属性降序排序

    我有一个对象列表 我需要按对象属性之一对其进行排序 我可以使用以下代码按升序排序 list1 sorted list1 key lambda object1 object1 fitness 但是 这按升序对列表进行排序 而我需要做的是按降序
  • MediaRecorder.ondataavailable - 数据大小始终为 0

    我正在尝试使用 Web API Media Recorder 在浏览器中录制用户的声音 在此阶段 我对录制后的音频所做的就是将其添加到音频元素的源中并进行播放 当我停止录音机时 会触发 ondataavailable 事件 但数据大小为0