Я бы хотел воспроизвести звук, который будет постепенно увеличивать скорость воспроизведения, то есть 1-й раз, когда он проигрывает 1x, затем 1.5x, затем 2.0x, затем 3.5x, 4x, ... что-то в этом роде. Я попытался написать несколько кодов, таких как:
MediaPlayer mp;
float mpDrumFreq = 0f;
float frequency = 1f;
mp = MediaPlayer.create(MainActivity.this, R.raw.tiktok);
mp.setLooping(true);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mpDrumFreq = Math.min(10f, (mpDrumFreq+frequency) );
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(mpDrumFreq));
}
}
});
TextView play = findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.start();
}
});
Здесь MediaPlayer mp
воспроизводит звук. Я пытаюсь увеличить скорость внутри setOnCompletionListener
с помощью этой линии mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(newSpeed));
И у меня есть другие варианты. Но это не сработало. Я не знаю почему. Кто-нибудь знает, как это сделать?
В этом случае я пытался с MediaPlayer
, но не стесняйтесь предлагать что-нибудь, например SoundPool
или какую-то другую библиотеку. Кто-нибудь может мне помочь?