Chrome Android 无法播放对象 URL 录制的音频
Chrome on Android cannot play recorded audio from object URL
我正在使用 Recorder.js 通过音频 API 录制内容,我想让用户有机会在将录音上传到服务器之前收听他们的录音。录制代码主要基于 supplied example,但我没有导出为 WAV 进行下载,而是使用 blob 并设置音频元素的 src 属性进行播放。负责的代码(停止录制后调用)如下所示:
function createAudioPlayer() {
recorder && recorder.exportWAV(function (blob) {
var url = URL.createObjectURL(blob);
var au = document.getElementById('recording');
au.src = url;
});
}
结果如下:
<audio id="recording" src="blob:https%3A//example.com/499ca96f-37b2-4515-bd1b-3c298f201dbd" controls="controls"></audio>
在 Chrome 50 和 OS X 10.11 上的 Firefox 46 以及 Windows 10 上的 Edge 13 中可以播放此音频。Chrome 50 Android 6.0 录制和上传正常,但在音频元素上调用 play()
时拒绝播放并出现以下错误:
Uncaught (in promise) DOMException: The element has no supported sources.
我试过添加 type="audio/wav"
但没用。如果我从 blob 上传文件(使用文件 API 和 XHR)并使用 src
属性和服务器上 wav 文件的 'normal' URL 它也会播放回来就好了应该更改什么以便用户可以在上传之前收听他们的录音?
暂不支持。我们正在进行修复它的工作,希望在 Chrome 51。(https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/Qi4dLcKjcCM)
我正在使用 Recorder.js 通过音频 API 录制内容,我想让用户有机会在将录音上传到服务器之前收听他们的录音。录制代码主要基于 supplied example,但我没有导出为 WAV 进行下载,而是使用 blob 并设置音频元素的 src 属性进行播放。负责的代码(停止录制后调用)如下所示:
function createAudioPlayer() {
recorder && recorder.exportWAV(function (blob) {
var url = URL.createObjectURL(blob);
var au = document.getElementById('recording');
au.src = url;
});
}
结果如下:
<audio id="recording" src="blob:https%3A//example.com/499ca96f-37b2-4515-bd1b-3c298f201dbd" controls="controls"></audio>
在 Chrome 50 和 OS X 10.11 上的 Firefox 46 以及 Windows 10 上的 Edge 13 中可以播放此音频。Chrome 50 Android 6.0 录制和上传正常,但在音频元素上调用 play()
时拒绝播放并出现以下错误:
Uncaught (in promise) DOMException: The element has no supported sources.
我试过添加 type="audio/wav"
但没用。如果我从 blob 上传文件(使用文件 API 和 XHR)并使用 src
属性和服务器上 wav 文件的 'normal' URL 它也会播放回来就好了应该更改什么以便用户可以在上传之前收听他们的录音?
暂不支持。我们正在进行修复它的工作,希望在 Chrome 51。(https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/Qi4dLcKjcCM)