Android MediaPlayer滞后于手机锁
我有一个应用程序,可以在按下按钮时播放声音。这些声音持续循环,长度在10-20秒之间 一切正常,但每当我按下电源按钮(锁定按钮)锁定手机时,MediaPlayer开始延迟,循环不再无缝或连续,因此每个循环之间存在明显的间隙 我使用的是ogg文件,当屏幕打开时,没有明显的间隙 这让我相信我需要一个wakelock来确保CPU保持开启,但是即使使用它,当手机被锁定时,MediaPlayer仍然存在明显的延迟 这就是我给wakelock打电话的方式。以前有人有过同样的问题吗Android MediaPlayer滞后于手机锁,android,audio,android-mediaplayer,state,wakelock,Android,Audio,Android Mediaplayer,State,Wakelock,我有一个应用程序,可以在按下按钮时播放声音。这些声音持续循环,长度在10-20秒之间 一切正常,但每当我按下电源按钮(锁定按钮)锁定手机时,MediaPlayer开始延迟,循环不再无缝或连续,因此每个循环之间存在明显的间隙 我使用的是ogg文件,当屏幕打开时,没有明显的间隙 这让我相信我需要一个wakelock来确保CPU保持开启,但是即使使用它,当手机被锁定时,MediaPlayer仍然存在明显的延迟 这就是我给wakelock打电话的方式。以前有人有过同样的问题吗 // Create
// Create a new MediaPlayer to play this sound
mp = MediaPlayer.create(this, resId);
mp.setLooping(true);
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyWakelockTag");
wakeLock.acquire();
mp.start();
您是否将媒体播放器用作服务?如果是:我也有类似的问题(媒体播放器在锁屏模式下无法立即触发oncompletionlistener),我通过为活动和媒体播放器设置唤醒锁来解决这个问题
//service:
mPlayer = new MediaPlayer();
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
//activity:
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "myWakeLock");
wakeLock.acquire();
“adb shell dumpsys power”是指活动的wakeLock
,“myWakeLock”从未被释放。