Verwenden von WakeLock zum Abspielen eines Streams

7

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:

  • Ist es wirklich nötig, in meiner Situation ein Wakelock zu erwerben?
  • Wenn es notwendig ist, welche Art von Wakelock sollte ich erwerben?

Und ja, das ist ein legitimes Anwendungsbeispiel für wakelock, weil meine Benutzer explizit möchten, dass das Audio weiter abgespielt wird.

    
yydl 21.06.2011, 23:26
quelle

5 Antworten

10

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.

    
hackbod 01.07.2011, 00:40
quelle
13
  1. Halten Sie das Telefon im Bereitschaftsmodus etwa fünf Minuten lang an. Wenn es weiterspielt, brauchen Sie keine Wecksperre; Wahrscheinlich weist dies darauf hin, dass die MediaPlayer-Instanz bereits über eine Instanz verfügt. In Android wird nach etwa zwei Minuten Inaktivität vom Benutzer alles, was nicht wichtig ist und ohne Wakelock ist, ausgesetzt; Fünf Minuten sollten jeden Zweifel über den Zwei-Minuten-Timer beseitigen.
  2. Probieren Sie eine teilweise Wecksperre aus. Damit hören Ihre Benutzer den Ton weil der Prozessor "wach" gehalten wird. Es wird jedoch keine Batterie verschwendet, wenn ein Bild angezeigt wird, da der Bildschirm schlafen gehen darf. Das ist wahrscheinlich, was du willst.

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.

    
Dylan Knowles 27.06.2011 20:10
quelle
4

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.

    
Dororo 01.07.2011 15:34
quelle
1

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.

    
Geobits 22.06.2011 01:02
quelle
0

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

    
dcanh121 01.07.2011 20:45
quelle

Tags und Links