当我尝试在后台流式传输音乐时,我的应用程序出现问题,并且仅在某些设备上出现。
当应用程序在前台播放任何音乐时,它可以正常工作,但在某些设备中,当我按下电源按钮时,流会立即失去其质量(看起来就像我处于低速互联网连接时一样)。当我打开屏幕时,流再次变得更好。
我已经尝试过了WakeLocks
,但是没有用。
编辑 1:这就是我使用唤醒锁的方式:
OnCreate
我的活动:
//Setting the wakelock
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
而不是我在音乐开始时这样做:
wl.acquire();
当流停止时:
if(wl.isHeld()){
wl.release();
}
编辑2:
也试过这个:
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
编辑3:
也尝试过使用 WiFi 锁:
//Setting the proper lockMode depending on the android version:
int wifiLockMode = WifiManager.WIFI_MODE_FULL;
int sdkVersion = Build.VERSION.SDK_INT;
//WIFI_MODE_FULL_HIGH_PERF was added on Android 3.1 so
//I need to implement this to make sure the wifi will execute on its full power(even if it consumes more battery)
if (sdkVersion >= Build.VERSION_CODES.HONEYCOMB_MR1) {
wifiLockMode = WifiManager.WIFI_MODE_FULL_HIGH_PERF;
}
//Setting the WifiLock
WiFiManager wm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
WifiLock mWiFiLock = wm.createWifiLock(wifiLockMode, "MyFlag");
mWiFiLock.acquire();
//Releasing the WifiLock
if(mWiFiLock.isHeld()){
mWiFiLock.release();
}
使用 WifiLock 似乎会好一些(或者我已经习惯了中断的声音)
有任何想法吗?