2012-03-10 46 views
1

我現在用的MediaPlayer對象在Android應用程序中播放Shoutcast的互聯網廣播流,但是在打流更長的持續時間播放互聯網廣播流Android中 - 流20-30分鐘

的問題是面臨的問題後停止說20-30分鐘後MediaPlayer突然停止播放流。 MediaPlayer偵聽器未捕獲任何錯誤。在各種論壇做了大量的搜索之後,這似乎是手機進入睡眠模式的問題

  1. 但是,我怎麼知道手機何時進入睡眠狀態?
  2. 我已經閱讀過某處,MediaPlayer需要獲取喚醒鎖,以便CPU不會永遠睡眠。這是問題嗎?如果是的話,我如何獲得Wake Lock?
  3. 通過WiFi收聽時,問題似乎更多。 WiFi上還需要一些Wake Lock嗎?

我一直在掙扎很長時間。任何人都可以幫忙嗎?

回答

2

加入的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

+0

更多信息這可能是什麼原因呢?另外,如何應用WiFi鎖? – user669231 2012-03-10 15:26:23

+1

是的,這是一個原因。我認爲沒有鎖只適用於Wi-Fi。您只能鎖定CPU,屏幕亮,鍵亮。 – XXX 2012-03-10 15:36:10

+0

也 您可以使用綁定服務進行長期連接。更多信息在這裏http://developer.android.com/guide/topics/fundamentals/services.html – XXX 2012-03-10 15:43:56