Android 媒体播放器与 CountDownTimer 卡顿
Android Media Player Stuttering with CountDownTimer
我正在尝试制作一个应用程序来教别人如何数音乐。媒体播放器初始化为持续 A 音符的 30 秒声音剪辑。我正在使用倒数计时器告诉我的媒体播放器何时暂停和播放。下面的代码导致音频的第一秒和最后一秒断断续续。
MediaPlayer myMediaPlayer = MediaPlayer.create(MusicCounting.this, R.raw.a_note);
CountDownTimer time = new CountDownTimer(4000,500) {
@Override
public void onTick(long millisUntilFinished) {
if(myMediaPlayer.isPlaying()) {
myMediaPlayer.pause();
} else {
myMediaPlayer.start();
}
}
@Override
public void onFinish() {
myMediaPlayer.pause();
myMediaPlayer.seekTo(0);
}
};
time.start();
此代码用于四分音符,我的八分音符代码看起来相同,只是倒数计时器的第二个参数是 250。如有任何建议,我们将不胜感激。谢谢 :)
有很多关于 Android MediaPlayer 卡顿的报告,可以通过各种方法尝试修复它。这似乎是最相关的问题:
- MediaPlayer stutters at start of mp3 playback
但是,AudioTrack 可能更适合您只想演奏特定音符的特定情况。参见:
- Playing an arbitrary tone with Android
我正在尝试制作一个应用程序来教别人如何数音乐。媒体播放器初始化为持续 A 音符的 30 秒声音剪辑。我正在使用倒数计时器告诉我的媒体播放器何时暂停和播放。下面的代码导致音频的第一秒和最后一秒断断续续。
MediaPlayer myMediaPlayer = MediaPlayer.create(MusicCounting.this, R.raw.a_note);
CountDownTimer time = new CountDownTimer(4000,500) {
@Override
public void onTick(long millisUntilFinished) {
if(myMediaPlayer.isPlaying()) {
myMediaPlayer.pause();
} else {
myMediaPlayer.start();
}
}
@Override
public void onFinish() {
myMediaPlayer.pause();
myMediaPlayer.seekTo(0);
}
};
time.start();
此代码用于四分音符,我的八分音符代码看起来相同,只是倒数计时器的第二个参数是 250。如有任何建议,我们将不胜感激。谢谢 :)
有很多关于 Android MediaPlayer 卡顿的报告,可以通过各种方法尝试修复它。这似乎是最相关的问题:
- MediaPlayer stutters at start of mp3 playback
但是,AudioTrack 可能更适合您只想演奏特定音符的特定情况。参见:
- Playing an arbitrary tone with Android