Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不支持blob中的Safari Audio.play()_Javascript_Ios_Cordova_Meteor_Safari - Fatal编程技术网

Javascript 不支持blob中的Safari Audio.play()

Javascript 不支持blob中的Safari Audio.play(),javascript,ios,cordova,meteor,safari,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 f

我试图在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")

如果您对用于下载到缓存中的代码感兴趣,可以找到它,其中提供的chrome修复程序已经实现并正在运行,但此处的测试代码尽可能简化。

这是一种正常行为。本地存储在私人浏览模式下被safari阻止。

你是说iOS上的webview总是在私人浏览模式下运行吗?另外,如果我在OSX上测试它,则不会启用私有浏览,也不会工作。您知道如何以不同的方式实现脱机缓存吗?您能添加更多信息,例如Safari文档的链接吗?您能找出哪一行导致了您面临的错误吗?在倒数第二行中,catch()记录了错误。