现在我的应用程序必须流式传输音乐。我正在使用网络服务器,如果手机处于唤醒状态或插入电源,一切正常。
但我真的需要继续流式传输,直到手机进入睡眠状态。我正在使用PowerManager PowerManager.WakeLock以保持手机清醒。
这是我的代码的一部分:
pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wl.setReferenceCounted(true);
之后我有wl.acquire();
和发布。我有一个处理程序,在歌曲停止播放后5分钟发布。
int timeToWait = 300000;
turnOffDevice.sendEmptyMessageDelayed(0, timeToWait);
但它可以在很短的时间内播放,然后歌曲开始跳跃,大部分时间歌曲停止播放。
答案 0 :(得分:0)
嗨我已经解决了我的问题,问题出在wifi上,经过一段时间后才睡觉所以我添加了一个wifilock并且在类的构造函数中我正在使用WIFI_MODE_FULL_HIGH_PERF这个标志避免设备关闭无线
wifilock = manager.createWifiLock(3,TAG);// WIFI_MODE_FULL_HIGH_PERF
唯一的问题是这个标志仅在API 12之后才可用,但是现在对我的项目来说并不是什么大问题。如果您想在此链接WIFI_MODE_FULL_HIGH_PERF
中获得更多信息