在Android中播放Internet Radio Streams - 流在20-30分钟后停止

时间:2012-03-10 09:16:06

标签: android streaming media-player wakelock

我在Android应用程序中使用MediaPlayer对象来播放Shoutcast Internet Radio Streams,但在播放流的时间较长时遇到问题

问题是,在20-30分钟之后,MediaPlayer突然停止播放流。 MediaPlayer侦听器中未捕获任何错误。在各种论坛中进行了大量搜索后,这似乎是手机进入睡眠模式的问题

  1. 但是,我怎么知道手机什么时候入睡?
  2. 我已经读过某个地方,MediaPlayer需要获取一个唤醒锁,这样CPU就不会再睡觉了。那是问题吗?如果是的话,我如何获得唤醒锁?
  3. 通过WiFi收听时问题似乎更多。 WiFi上是否还需要一些唤醒锁?
  4. 我一直在苦苦挣扎很长时间。有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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