Ich entwickle eine Phonegap App, die Audio mit dem Phonegap Media Plugin abspielt. Wenn ich die Home-Taste oder Bildschirmsperre-Taste auf meinem Android-Gerät (KitKat 4.4) drücke, geht die App in den Hintergrund, aber das Audio wird nicht abgeschaltet, weil das Pausenereignis nicht aufgerufen wird. Nur wenn ich die App wieder aktiviere, wird das pause-Ereignis ausgeführt, und mein Code zum Ausschalten des Audios wird schließlich ausgeführt. Das Wiederaufnahmeereignis wird auch direkt danach ausgeführt.
Beim Lesen der Phonegap-Dokumente zum Pausen-Event gibt es einen Hinweis zu iOS Quirks:
"Im Aufruf-Handler funktionieren alle Aufrufe der Cordova-API oder nativer Plug-ins, die Objective-C durchlaufen, nicht zusammen mit interaktiven Aufrufen wie Warnungen oder console.log (). Sie werden nur dann verarbeitet, wenn Die App wird bei der nächsten Ausführungsschleife fortgesetzt. "
Das ist sehr ähnlich dem, was ich auf meinem Android-Gerät sehe, obwohl ich mich frage, ob es das gleiche Problem ist. Ich brauche wirklich eine Lösung oder einen Workaround, da dies ein Showstopper ist, um Audio nicht ausschalten zu können, wenn ein Benutzer die App pausiert.
Hier ist mein Code zum Hinzufügen des Pausen-Ereignis-Listeners:
%Vor%UPDATE: Ich denke, ich habe es gelöst, obwohl ich nicht allzu glücklich bin über die Lösung. Ich hatte die Phonegap config.xml Variable KeepRunning auf false gesetzt. Ich setze auf wahr und jetzt bekommt es das Pause-Ereignis, wenn es soll. Ich habe das Gefühl, dass ich im Stande sein sollte, meine App davon abzuhalten, im Hintergrund zu laufen und auch vorher etwas Pausecode auszuführen.
Wie auch immer, hier ist die config.xml Zeile, über die ich spreche:
%Vor%Tags und Links javascript android cordova