我正在尝试使用Android的MediaPlayer类播放一些声音。
这是代码:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, Uri.parse(soundUrl));
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(false);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i(LOGTAG, "onComplete hit");
mp.stop();
mp.release();
}
});
mp.prepare();
mp.start();
这段代码在一个服务中运行,但是由于某些原因,在onCompletion中设置的任何内容似乎都不会触发。之后我在logcat中收到一条消息,说mediaplayer没有被释放。我不知道我做错了什么。
我在Galaxy Nexus 4.0.4的原生ROM上进行测试。
我还注意到声音可能在结束时被裁剪。