我有时(不是每次都)在LogCat中得到“媒体播放器在被释放之前完成”的警告,并且声音仅部分播放(切断)。
我有服务CountdownService
,我有:
MyApplication appActivity = (MyApplication)this.getApplication();
appActivity.playCountdownComplete();
stopSelf(); // I absolutely must stop the service at this point
在我的MyApplication(扩展应用程序)活动中:
public void playCountdownComplete() {
MediaPlayer mp = MediaPlayer
.create(getApplicationContext(), R.raw.sound_complete);
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
mp.start();
}
我绝对必须在我拨打stopSelf();
时停止服务,因为我的应用程序依赖于未运行的服务,所以请不要提供改变它的解决方案。
为什么声音不完全播放? - 应用程序活动正在播放声音,所以即使服务停止,也没关系,对吧?
编辑:我也试过让服务发出广播,接收它的应用程序活动并在那里播放声音,但仍然会发生同样的事情。