Я пытаюсь сделать приложение, чтобы научить кого-то, как считать музыку. Медиа-плеер инициализируется 30-секундным звуковым клипом постоянной записки. Я использую таймер обратного отсчета, чтобы сообщить своему медиаплееру, когда нужно сделать паузу и играть. Приведенный ниже код вызывает заикание первой и последней секунды звука.Android Media Player Заикание с CountDownTimer
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. Любые предложения будут с благодарностью. Спасибо :)
Спасибо, я буду смотреть в эту – user2028508
Так MediaPlayer не заикаться, если я вынимать CountDownTimer. Кроме того, я реализовал произвольный тон, и я получаю согласованное примечание, но его продолжительность - целое число, поэтому я не могу воспроизвести заметку менее секунды. Есть идеи? – user2028508
Я сейчас не на своем компьютере, но считаю, что 'duration' используется только совместно с' sampleRate', чтобы определить 'numSamples', чтобы вы могли легко настроить этот расчет. Может быть, просто сделайте 'duration' float, а затем нарисуйте' numSamples' обратно в int? – mpkuth