不支持来自blob的Safari Audio.play()

时间:2016-12-09 16:08:51

标签: javascript ios cordova meteor safari

我正在尝试从safari中的缓存中播放m4a文件。该错误首先出现在iOS上(它是一个Meteor Cordova应用程序,因此它使用Safari Webview),然后我意识到它也可以在桌面上的Safari中重现。我正在使用以下代码尝试播放音频:

LocalForage.getItem(track_id, (err, value)=>{
    if(err)
        throw err;
    //the loaded value is an arraybuffer of an m4a file
    let blob = new Blob([value]);
    let url = (window.URL || window.webkitURL || window || {}).createObjectURL(blob);
    let testAudio = new Audio(url);
    testAudio.play().then(()=>{console.log("play successful")}).catch((err)=>{console.error(err)});
});

我得到的唯一错误信息是

DOMError: NotSupportedError (Message: "This operation is not supported")

如果您对用于下载到缓存的代码感兴趣,可以找到in my other question,Chrome的修复程序已实现并正常工作,但此处的测试代码尽可能简化。 / p>

1 个答案:

答案 0 :(得分:0)

这是正常行为。在私人浏览模式下,通过safari阻止Localstorage。