【发布时间】:2020-04-05 11:01:16
【问题描述】:
我想播放一个会逐渐加快播放速度的声音,即第一次播放 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 播放声音。我正在尝试使用这条线 mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(newSpeed)); 提高 setOnCompletionListener 内的速度
我还有一些其他的变化。但它没有用。我不知道为什么。有谁知道怎么做?
在这种情况下,我尝试使用 MediaPlayer,但可以随意提出任何建议,例如 SoundPool 或其他一些库。
谁能帮帮我?
【问题讨论】: