Ich habe einen MediaPlayer in einem Dienst, der Audio von einer URL (Streaming) abspielt. Ab jetzt scheint es gut zu funktionieren, und spielt sogar weiter, wenn ich das Telefon in den Standby-Modus setze.
Ich erwerbe derzeit kein Wakelock. Meine Frage ist:
Und ja, das ist ein legitimes Anwendungsbeispiel für wakelock, weil meine Benutzer explizit möchten, dass das Audio weiter abgespielt wird.
MediaPlayer erledigt dies standardmäßig nicht automatisch für Sie.
Anstatt jedoch eine Wecksperre zu erhalten, gibt es eine Methode, die Sie aufrufen können, um sie während des Spiels für Sie zu halten:
Beachten Sie, dass Ihre App die Wake-Sperre enthält, wie in der Dokumentation angegeben. Um diese Funktion verwenden zu können, müssen Sie die Wake Lock-Berechtigung anfordern.
BEARBEITEN: Wenn Sie auf der sicheren Seite spielen wollen, dann möchten Sie ein WakeLock verwenden. Auf diese Weise funktioniert der MediaPlayer auch dann ordnungsgemäß, wenn er sich jemals ändert und in den Ruhemodus wechselt, wenn das Telefon das Programm ausschaltet. Es gibt wirklich nichts zu verlieren, indem Sie den WakeLock hinzufügen, vorausgesetzt, Sie geben ihn korrekt frei, wenn er nicht mehr benötigt wird. Wenn Sie dies nicht tun, werden Sie einfach mehr Batterie entladen, als Sie beabsichtigen, und im schlimmsten Fall sehen Sie sofort einen Fehler, der anzeigt, dass Sie die Sperre nicht freigegeben haben, wenn Ihre Anwendung beendet wird. Das Hinzufügen eines WakeLock - obwohl potenziell redundant - ist eine gute Übung, da es Ihre Anwendung robuster gegen Änderungen an der Software macht, von der sie abhängt.
Wahrscheinlich benötigen Sie einen WakeLock, da Sie nicht garantieren können, dass der PowerManager während der Wiedergabe nicht ein- und ausgeschaltet wird. Der PARTIAL_WAKE_LOCK stellt sicher, dass die niedrigste Stufe der Batterieentleerung verwendet wird (CPU ein; Bildschirm / Tastatur aus). Sie können immer den Effekt des Batterieverbrauchs testen, aber ich bezweifle, dass er groß sein wird, da die CPU sowieso eingeschaltet sein muss, um die Musik abzuspielen. Diese Methode stellt sicher, dass unabhängig davon, welches Telefon verwendet wird (oder Einstellungen an diesem Telefon), die Wiedergabe nicht von der CPU getrennt wird, die in den Ruhezustand wechselt.
Ich glaube nicht, dass du dafür ein WakeLock brauchst. Als ich mit MediaPlayer anfing, habe ich sehr schnell herausgefunden, dass es im Standby-Modus einfach nicht den Mund hält. Es hat mich ein bisschen Arbeit gekostet, nur um das zu überwinden, aber ich habe noch nie einen Fall gesehen, in dem der Standby-Modus ein MediaPlayer-Streamingobjekt zum Absterben bringt.
Sie benötigen kein WAKE LOCK. Wenn Sie WAKE LOCK verwenden, zwingen Sie die Benutzer, ihren Bildschirm eingeschaltet zu lassen. Ich persönlich bevorzuge es, den Bildschirm während der Wiedergabe von Medien auszuschalten.
Beispiel für einen lang laufenden Dienst hier Beispiel
Tags und Links android media-player wakelock