0

现在我的应用程序必须流式传输音乐。我正在使用网络服务器,如果手机处于唤醒状态或已插入电源,一切正常。

但我真的需要继续流媒体,直到手机进入睡眠状态。我正在使用 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);

但它在短时间内工作,然后歌曲开始跳跃,大部分时间歌曲停止。

4

1 回答 1

0

嗨,我已经解决了我的问题,问题出在 wifi 中,一段时间后它正在休眠,所以我添加了一个 wifilock 并在我正在使用 WIFI_MODE_FULL_HIGH_PERF 的类的构造函数中,此标志避免设备关闭 wifi

wifilock = manager.createWifiLock(3,TAG);// WIFI_MODE_FULL_HIGH_PERF

唯一的问题是这个标志只在 API 12 之后可用,但现在对我的项目来说并不是什么大问题。如果您想在此链接WIFI_MODE_FULL_HIGH_PERF中获得更多信息

于 2013-08-28T13:52:43.580 回答