reactjs - 如何在音频 src 中使用对象 url
问题描述
我正在制作一个音频播放器
<audio src={audioSrc}>
标签。
当我得到音频文件时,它是一个二进制文件(blob
如下),所以我用它创建了一个 blob。
let test = new Blob(blob, {type: 'audio/mp3'};
然后创建了一个对象 url
let objUrl = URL.createObjectURL(test);
这objUrl
看起来像blob:https://xxxxx
,当我将此字符串传递给 时<audio src={objUrl}/>
,我什么也听不到。
我想知道是否必须转换此 url 以使其在音频标签中可用。
请问我可以就这个问题得到建议吗?
解决方案
构造函数的第一个参数Blob
是一个数组。MDN 是这样描述的:
ArrayBuffer、ArrayBufferView、Blob、USVString 对象或任何此类对象的组合,将被放入 Blob 中。USVString 对象被编码为 UTF-8。
https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob#parameters
也许像这样创建你的 blob 已经解决了这个问题:
let test = new Blob([ blob ], { type: 'audio/mp3' });
我能想到的另一个问题是二进制数据具有不同的 mimeType,'audio/mp3'
这可能会导致音频元素放弃解码数据。
推荐阅读
- java - 我无法从 Java 调用 SonarQube API 来搜索问题得到 410 错误
- javascript - 如何避免mongodb中的重复键错误收集
- google-cloud-platform - 如何在单独的 terraform 部署中使用 terraform 将私有静态 Ip 分配给 GCE 实例
- regex - 如何shell脚本正则表达式完美匹配?
- python - 无法在 M1 Mac 上安装 OpenCV Python
- python - 无法分配“'1'”:“staff.staff_type”必须是“staff_type”实例。OneToOne 字段中的 Django 错误
- python - pydub audiosegement 给出 FileNotFoundError
- haskell - 多次调用 applyTwice 时无法理解结果
- python - 编写一个函数,返回汇率最大值的币种名称
- c++ - 如何以特定方式打印二叉搜索树