【发布时间】:2016-04-28 08:30:04
【问题描述】:
我想重放音频 blob (wav),使用 Web Audio API 录制在 javascript 中。
我尝试了以下方法:
function replayBlob( blob ) {
var blobURL = window.URL.createObjectURL(blob);
var audio0 = new Audio(blobURL);
audio0.play();
}
但此代码不会重播音频 blob。
我还尝试通过 html 音频标签重放 blob:
<audio id="wavSource"
src="blob:http%3A//localhost/f0b6bae9-7c70-4793-8436-7755a40bae3f"
type="audio/wav" controls>
</audio>
使用以下方式以编程方式设置 blob 源:
var blobURL = window.URL.createObjectURL(blob);
document.getElementById("wavSource").src = blobURL;
和音频播放呼叫使用:
document.getElementById("wavSource").play();
但没有声音播放。
为了验证,我下载了 blob:
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = blobURL;
a.download = "test.wav";
a.click();
下载的 blob 包含 wav 格式的正确音频数据。 如何在 javascript 中播放来自 blob 的音频数据?
【问题讨论】:
-
你确定 blob 是 wav 格式吗?这意味着如果您下载 blob,它将在媒体播放器中播放...
-
是的,它在媒体播放器中播放。任何其他想法为什么我可能什么都听不到?
-
尝试添加控件并将其附加到正文中,看看是否可以这样玩
-
我试过了,但还是没有声音,请在帖子中找到我的更新。有什么想法我在这里做错了吗?
-
您不能将 blob url 硬编码到源代码中,必须使用 javascript 设置。
标签: javascript audio web-audio-api