2012-03-10 45 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