2014-03-01 21 views
0

我有一个应用程序,播放声音按钮按下。这些声音持续循环,长度在10-20秒之间。媒体播放器滞后于电话锁

一切正常,因为它应该,但是每当我通过按下电源按钮(锁定按钮)锁定我的手机,MediaPlayer开始滞后和循环不再无缝或连续,因此有明确的差距循环。

我正在使用ogg文件,当屏幕上没有明显的差距。

这导致我相信我需要一个唤醒锁以确保CPU保持打开状态,但即使使用此功能,当手机被锁定时,MediaPlayer仍然有明显的显着延迟。

这就是我打电话给wakelock的方式。有没有人有过同样的问题?

// 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

您是否将媒体播放器用作服务?如果是这样的:我有一个类似的问题(媒体播放器未能触发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(); 
+0

“亚行外壳dumpsys动力,我解决这个“正在说'Activity'是'wakeLock',”myWakeLock“从未被释放。 – John