javascript जब आईओएस सफारी बंद हो जाता है तब से एचटीएमएलएफ़ ऑडिओ बंद करो



ios html5 (1)

एक समाधान खोजने के लिए प्रबंधित:

एक लूप का उपयोग करें, यह जांचने के लिए कि उपयोगकर्ता वेबपृष्ठ पर है या नहीं। समय को स्टोर करें

var lastSeen;
var loop = function (){
    lastSeen = Date.now();
    setTimeout(loop, 50);
};
loop();

var music = document.getElementById('music');
music.addEventListener('timeupdate', function (){
    if(Date.now() - lastSeen > 100){
        this.pause();
    }
}, false);

यह लगभग है कि मेरी फाइल कैसा दिखती है चूंकि timeupdate इवेंट एक ऑडियो एलिमेंट में लगातार timeupdate , अगर यह खेल रहा है, तो मुझे केवल तब ही जांच करना होगा जब मेरी लूप आखिरी बार कॉल की गई थी। अगर इसे 100 से अधिक महीने पहले बुलाया गया था, तो मैं संगीत को रोकता हूं आईपैड पर एक जादू की तरह काम किया I

ठीक है, तो मुझे इस रूप में कुछ सरल मिल गया है:

<audio autoplay='autoplay' loop='loop' id='audio' controls>
  <source src='http://www.w3schools.com/html/horse.ogg'/>
  <source src='http://www.w3schools.com/html/horse.mp3'/>
</audio>

अब, जब मैं एक आईओएस डिवाइस पर ऑडियो चलाता हूं, तो यह ठीक है और सब कुछ छीनता है, हालांकि , जब मैं ब्राउज़र विंडो बंद करता हूं या टैब स्विच करता हूं, यह सिर्फ पाशन पर रहता है और इसे रोकने का एकमात्र तरीका है अगर मैं ब्राउज़र टैब बंद कर देता हूं । मैंने loop='loop' को निकालने की कोशिश loop='loop' और इसे जावास्क्रिप्ट के साथ onended , और यह काम करता है, लेकिन ऑडियो के साथ जो लगभग 1.5 मिनट लंबा है, यह अभी भी काफी परेशान हो सकता है लेकिन यह काम या तो नहीं था क्योंकि ended घटना भी तब होती है जब ब्राउज़र खुला नहीं होता है।

डेमो जिसमें सबसे पहले ध्वनि मुझे ऑनलाइन मिल सकता है, लेकिन ध्यान दें कि मेरा वास्तविक ध्वनि बहुत लंबा है, इसलिए मुझे ब्राउज़र विंडो बंद होने पर इसे pause आवश्यकता है।

मैंने इसे रोकने पर कोशिश की है, बिना किसी लाभ के लिए और onbeforeunload करें। क्या पृष्ठभूमि में खेलने से ऑडियो को रोकने का एक तरीका है?





html5-audio