我有时(不是每次)在 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();
因为我的应用程序依赖于未运行的服务,所以请不要提供改变它的解决方案。
为什么声音不能完全播放?- 应用程序活动正在播放声音,所以即使服务停止,也没有关系,对吧?
编辑:我还尝试让服务发送广播,应用程序活动接收它并在那里播放声音,但仍然发生同样的事情。