媒体播放器滞后于手机锁定



我有一个应用程序,可以在按下按钮时播放声音。这些声音连续循环,长度在 10-20 秒之间。

一切都完全正常工作,但是每当我通过按下电源按钮(锁定按钮)锁定手机时,MediaPlayer 就会开始滞后,循环不再无缝或连续,因此每个循环之间都有明显的间隙。

我正在使用 ogg 文件,当屏幕打开时,没有明显的间隙。

这导致相信我需要一个唤醒锁来确保 CPU 保持打开状态,但是即使使用它,当手机锁定时,媒体播放器仍然存在明显且显着的滞后。

这就是我所说的唤醒锁。以前有没有人遇到过同样的问题?

    // 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();

您是否将媒体播放器用作服务?如果是这样:我遇到了类似的问题(媒体播放器在锁定屏幕模式下无法立即触发 oncompletelistener),我通过为活动和媒体播放器设置唤醒锁来解决此问题

//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();

最新更新