Воспроизведение потокового интернет-радио в Android - поток останавливается через 20-30 минут - PullRequest
1 голос
/ 10 марта 2012

Я использую объект MediaPlayer в приложении Android для воспроизведения потоков Shoutcast Internet Radio, но у меня возникла проблема с воспроизведением потоков в течение более длительных периодов

Проблема в том, что MediaPlayer внезапно прекращает воспроизведение потока, скажем, через 20-30 минут. Ошибка не фиксируется в слушателях MediaPlayer. После многих поисков на разных форумах возникает проблема с переходом телефона в спящий режим

  1. Но как узнать, когда телефон заходит в режим сна?
  2. Я где-то читал, что MediaPlayer необходимо установить Wake Lock, чтобы процессор никогда не засыпал. Это проблема? И если да, как мне приобрести Wake Lock?
  3. Проблема, кажется, больше при прослушивании через WiFi. Требуется ли какой-либо Wake Lock для WiFi?

Я долго боролся. Кто-нибудь может помочь, пожалуйста?

1 Ответ

2 голосов
/ 10 марта 2012

Добавить в Manifest.xml:

<uses-permission android:name="android.permission.DEVICE_POWER"></uses-permission>

В вашем классе, где вы воспроизводите поток:

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();        
{       
    // Your code here   
    // in this block CPU Will not go to the sleep mode   
} 
wl.release();

Более подробная информация здесь http://developer.android.com/reference/android/os/PowerManager.html

...