我正在尝试从 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 修复程序已经实现并且可以正常工作,但是这里的测试代码已经尽可能的简化了。
Best Answer-推荐答案 strong>
这是正常行为。 Localstorage 在隐私浏览模式下被 safari 阻止。
关于javascript - 不支持来自 blob 的 Safari Audio.play(),我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41064463/
|