2016-12-09 3 views
2

사파리의 캐시에서 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 크롬이 구현되고 작동한다는 조건으로 제공되는 수정 사항을 찾을 수 있지만 여기서 테스트 코드는 최대한 단순화되었습니다.

+0

당신이 겪고있는 오류의 원인은 무엇입니까? – Phonolog

+0

두 번째 줄부터 마지막 ​​줄까지 catch()는 오류를 기록합니다. – Taxel

답변

0

이것은 정상적인 동작입니다. 로컬 저장소는 개인 정보 보호 브라우징 모드에서 사파리에 의해 차단됩니다.

+1

iOS의 webview는 항상 개인 정보 보호 브라우징 모드로 실행됩니까? 또한 OSX에서 테스트하면 개인 정보 보호 기능을 사용할 수 없으며 작동하지 않습니다. 오프라인 캐싱을 어떻게 다르게 할 수 있습니까? – Taxel

+0

몇 가지 추가 정보를 추가 할 수 있습니까? Safari 설명서에 대한 링크? – Phonolog

관련 문제