2016-12-09 6 views
2

Safariのキャッシュからm4aファイルを再生しようとしています。このエラーは、iOS(Meteor Cordovaアプリ、Safari Webviewを使用しています)で初めて発生しました。その後、デスクトップ上のSafariでも再現できます。SafariのAudio.play()がサポートされていません

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の修正が見つかるはずですが、ここでのテストコードはできるだけ単純化されています。

+0

あなたが直面しているエラーの原因となった行を確認できましたか? 2行目から最後の行には – Phonolog

+0

、catch()はエラーを記録します。 – Taxel

答えて

0

これは正常な動作です。ローカルストレージは、プライベートブラウジングモードではサファリによってブロックされます。

+1

iOSのwebviewは常にプライベートブラウジングモードで動作しますか?また、私はOSXでそれをテストすると、プライベートブラウジングが有効になっていないとどちらも動作しません。 どうすればオフラインキャッシュを別の方法で実現できますか? – Taxel

+0

さらに詳しい情報を追加できますか。 Safariのドキュメントへのリンク? – Phonolog

関連する問題