gpt4 book ai didi

javascript - 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

转载 作者:行者123 更新时间:2023-11-30 05:33:19 26 4
gpt4 key购买 nike

我正在尝试从 getUserMedia 创建的音频 blob 创建对象 URL。该代码在 Chrome 中有效,但在 Firefox 中存在问题。

错误:

当我调用 stopAudioRecorder() 时,它停止在 audio_player.src = URL.createObjectURL(audio_blob);

类型错误:参数 1 对于 URL.createObjectURL 的任何 2 参数重载均无效。

代码:

  var stopAudioRecorder = function(audio_recorder) {
var audio_blob, audio_player, new_recording, save_button;

audio_recorder.stopRecording();
audio_blob = audio_recorder.getBlob();

audio_player = document.createElement("audio");
audio_player.src = URL.createObjectURL(audio_blob);
audio_player.controls = true;
audio_player.play();

$('#new_recording').appendChild(audio_player);

recording = false;
return ($("#record_button")).text("Start recording");
};

我试图通过添加包装函数来提供一些跨浏览器兼容性

function createObjectURL ( file ) {
if ( window.webkitURL ) {
return window.webkitURL.createObjectURL( file );
} else if ( window.URL && window.URL.createObjectURL ) {
return window.URL.createObjectURL( file );
} else {
return null;
}
}

来自 How to choose between `window.URL.createObjectURL()` and `window.webkitURL.createObjectURL()` based on browser , 但那没有用

最佳答案

在 Firefox 中,您可以直接将 getUserMedia 创建的媒体流提供给音频元素的“mozSrcObject”属性。所以下面的代码应该可以工作:

audio_player.mozSrcObject = audio_blob;

您应该考虑使用 adapter.js文件以说明浏览器差异。

关于javascript - 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com