2013-12-09 1 views
2

iPhone 또는 iPad의 배경과 사운드 연속 재생시 배경으로 이동할 때 다른 해결책이 있습니다. 대부분이 HMTL5 audio tag에 있지만 그렇지 않은 것은 아닙니다 "timeupdate"과 같은 이벤트가 없기 때문에 Web Audio API를 사용하는 경우 관련성이 있으며 물론 다른 개념입니다. Page Visibility API은 탭을 변경 한 경우에만 iOS7에서 작동하지만 iOS6에서는 배경으로 이동하지 않습니다.웹 오디오 API를 사용하여 iOS6/7 소리가 백그라운드로 흐림

누군가 iOS6 또는 iOS7의 배경으로 가면 웹 오디오 API을 사용하여 사운드를 중지/음소거 할 수있는 방법을 알고 있습니까?

답변

1

사파리가 배경이 될 때를 감지하려면 pageshowpagehide이라는 창 이벤트를 사용할 수 있습니다 (단, 이미 알고있는 바입니다).

document.addEventListener('pageshow',function(){ 
    // Do something here 
}, false); 

document.addEventListener('pagehide',function(){ 
    // Do something here 
}, false); 

는 또한 탭이 변경된 경우 PageVisibility API (available since iOS7)를 확인 할 수 있습니다.

document.addEventListener('visibilitychange', function(){ 
    if (document.hidden) { 
     // Tab out of focus 
    } 
    else { 
     // Tab on focus 
    } 
},false); 

이 코드는 iOS7 이후 Safari에서 작동하지만 일부 브라우저에는 접두어가 필요합니다.

+0

마침내 나는 "pageshow"&& "pagehide"를 https://gist.github.com/addyosmani/1122546과 함께 사용하여 상당히 잘 작동합니다. 감사. –

0

자동 해결 80 %. 이 배경은 iOS에서 테스트 한 Safari로 돌아가서 백그라운드로 이동할 때 트리거되는 고유 한 이벤트입니다.

window.addEventListener("pageshow", function(evt){ 
    //fooBarCode 
}, false); 
window.addEventListener("pagehide", function(evt){ 
    //fooBarCode 
}, false); 

이것은 배경으로 이동할 때만 작동하지만 탭을 변경하면 유효한 해결책이 아닙니다. 어떤 아이디어입니까?