Android - MediaPlayer + PowerManager.PARTIAL_WAKE_LOCK - PullRequest
5 голосов
/ 24 июля 2011

Я создаю приложение для прослушивания радиопотоков через сеть WiFi и 3G.

Я использую собственный MediaPlayer.К сожалению, когда экран становится черным, а телефон переходит в режим ожидания, медиаплеер перестает воспроизводить музыку.

Я добавил:

mp.setWakeMode(myContext, PowerManager.PARTIAL_WAKE_LOCK);

Но изменений почти не было (просто прекратите играть ив следующие 3 секунды начните играть снова ...) только FULL_WAKE_LOCK и SCREEN_DIM_WAKE_LOCK работают, как я ожидал ...

В моем устройстве я установил опцию, которая запрещает Wi-Fi спать.

Я пытался добавить свой клик WAKE_LOCK

        mp.setWakeMode(this.getBaseContext(), PowerManager.PARTIAL_WAKE_LOCK);
        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "testa");
        wl.acquire();

Но это не сработало.Работает только FULL_WAKE_LOCK, но я не хочу разряжать батарею при включенном экране :(.

У меня HTC Desire с Android 2.2. Есть ли у вас какие-либо идеи, как запретить MediaPlayer перестать воспроизводить интернет-радиопоток, когда телефон находитсярежим ожидания?

1 Ответ

5 голосов
/ 04 августа 2011

Как отмечает Джерри, вам может потребоваться сохранить блокировку WiFi, если поток идет через WiFi. Другое дело, когда вы приобретаете козырек? Вы должны приобрести его при запуске приложения, а не ждать, пока экран не погаснет. Возможно, вы не сможете получить блокировку до того, как устройство перейдет в спящий режим. Кроме того, вам понадобится разрешение WAKE_LOCK, если у вас его еще нет.

...