我有一个按下按钮播放声音的应用程序。这些声音连续循环,长度在10-20秒之间。
一切都完全正常,但每当我按下电源按钮(锁定按钮)锁定手机时,MediaPlayer开始滞后,循环不再无缝或连续,因此每个循环之间有明显的间隙
我正在使用ogg文件,当屏幕打开时,没有明显的差距。
这导致我相信我需要一个唤醒锁以确保CPU保持开启,但即使使用此功能,当手机被锁定时,MediaPlayer仍然存在明显且明显的延迟。
这就是我打电话给唤醒锁的方式。之前有没有人遇到同样的问题?
// 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();
答案 0 :(得分:0)
您使用媒体播放器作为服务吗?如果是这样的话:我遇到了类似的问题(媒体播放器在锁屏模式下无法立即触发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();