html 从服务器获取完整的音频文件

ha5z0ras  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(108)

我有一个客户端和服务器设置。我目前正在从服务器获取文件,然后将其流式传输到客户端。我已经尝试设置它,所以音频不开始播放,直到它完全加载,但我仍然得到部分音频。但是,如果我在浏览器上下载文件,所有的音频都在那里。我正在实现一个TTS应用程序,所以我不能直接预加载音频。如何强制浏览器在完整音频能够播放之前不播放?这是我目前掌握的情况

const handleAudioLoaded = () => {
  console.log("Got here for the x'th time");
  const audioElement = document.getElementById(
    "audioplayer"
  ) as HTMLAudioElement;
  if (audioElement) audioElement.play();

{!loading && audio && (
            <ReactAudioPlayer
              id="audioplayer"
              src={`http://localhost:8000/audio/${audio}`}
              onCanPlayThrough={handleAudioLoaded}
              // onLoadedMetadata={handleAudioLoaded}
              preload="auto"
              controls
            />
          )}

字符串

xtupzzrd

xtupzzrd1#

在您的例子中,您可以使用fetch下载音频,然后创建一个对象URL并分配给音频播放器。

fetch(`https://your-audio-location)
  .then(res => res.blob())
  .then((myBlob) => {
    const objectURL = URL.createObjectURL(myBlob);
    const newAudioURL = objectURL;
  });

字符串

相关问题