【问题标题】:How to play audio from an API response?如何从 API 响应播放音频?
【发布时间】:2023-01-27 16:30:16
【问题描述】:

我无法播放以下响应中的音频。我怎样才能转换下面的响应并播放它。

getAudio = async () => {
try {
const url = `example`;

const r = await fetch(url).then(r => r.text());
const len = r.length;

let audioURL = "";

if (len > 200) {
  const buf = new ArrayBuffer(len);
  const view = new Uint8Array(buf);

  for (let i = 0; i < len; i++) view[i] = r.charCodeAt(i) & 0xff;

  const blob = new Blob([view], { type: "audio/wav" });

  audioURL = window.URL.createObjectURL(blob);
} else toast("No audio found!", { type: "error" });

this.setState({ audioURL });
} catch (e) {
console.log(e);
}
};

回应是

【问题讨论】:

    标签: javascript reactjs blob html5-audio binary-data


    【解决方案1】:

    看起来你已经完成了大部分工作。您已经有了一个对象 URL,所以请尝试将其插入 Audio 组件,看看您会听到什么!

    【讨论】:

      【解决方案2】:

      我会尝试使用 Axios 而不是 Fetch,在我看来它更有用,除此之外,尝试围绕 blob 的定义设置错误边界,我真的相信问题就在那里。

      祝你好运!

      【讨论】:

      • 您的答案可以通过其他支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写出好的答案的信息in the help center
      猜你喜欢
      • 2021-04-13
      • 2013-12-29
      • 2012-10-18
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      相关资源
      最近更新 更多