2017-02-18 8 views
0

Ich bin relativ neu in JavaScript und ich arbeite an einem Spiel Build für Safari Mobile auf dem iPad (iOS 10.2.1).Audio auf Safari Mobile, wenn der Netzschalter gedrückt wird

Wenn das Spiel gestartet wird, wird eine Hintergrundmusik gespielt (wie in jedem anderen Spiel auf dem Markt). Wenn die Spielseite den Fokus verliert, wird die Musik gestoppt und nicht wiedergegeben, bis die Seite wieder fokussiert wird.

Wenn ein neuer Tab aufgerufen wird oder der Browser geschlossen wird, tritt kein Problem auf, aber wenn der Benutzer die Ein/Aus-Taste drückt oder die intelligente iPad-Abdeckung schließt und das Gerät in den Pause-Modus versetzt, tritt ein ungewöhnliches Verhalten auf: Die Musik stoppt, aber Die Audiodatei wird irgendwie an die Music App übergeben und erscheint sichtbar und spielbar (siehe Screenshot unten).

iPad unlock screen

Ich habe zu ungesetzt Audio-Variable versucht onblur Ereignis zu tun:

backgroundMusic = new Audio("pathToAudio"); 
window.addEventListener("blur", function(e) { 
    delete backgroundMusic; 
} 

var backgroundMusic = new Audio("pathToAudio"); 
window.addEventListener("blur", function(e) { 
    backgroundMusic = null; 
} 

var backgroundMusic = new Audio("pathToAudio"); 
window.addEventListener("blur", function(e) { 
    backgroundMusic = (function(){}()); 
} 

auf Stackoverflow zu unset Variable in JavaScript Art und Weise der Suche:

How to unset a JavaScript variable?

How to unset variable using javascript?

How to delete a variable?

Aber nichts funktioniert ... Wie kann ich dieses Verhalten verhindern?

!!! Bitte, keine Answers in jQuery !!!

Antwort

0

Es war nicht möglich, mein Audio zu deaktivieren, aber ich konnte das seltsame Verhalten verhindern, indem ich den Pfad zur Audiodatei bei Blur-Ereignis änderte.

backgroundMusic.src = ""; 

Im Fokus ist es möglich, den Pfad auf den ursprünglichen zurückzusetzen.