Java android studio更改API的音频播放速度<;23

Java android studio更改API的音频播放速度<;23,java,android,audio,playback,Java,Android,Audio,Playback,我想播放一首需要完全控制播放速度的配乐。我在android studio中尝试了几种方法,但我面临以下问题: 我的API级别是19,因此我无法使用MediaPlayer更改速度 SoundPool应该播放简短的声音,并在几秒钟的音乐后停止播放 我还可以试试别的吗?类似这样的东西: public class AudioActivity extends Activity { AudioTrack audio = new AudioTrack(AudioManager.STREAM_MUSIC,

我想播放一首需要完全控制播放速度的配乐。我在android studio中尝试了几种方法,但我面临以下问题:

  • 我的API级别是19,因此我无法使用MediaPlayer更改速度
  • SoundPool应该播放简短的声音,并在几秒钟的音乐后停止播放
我还可以试试别的吗?

类似这样的东西:

public class AudioActivity extends Activity {
AudioTrack audio = new AudioTrack(AudioManager.STREAM_MUSIC,
        44100,
        AudioFormat.CHANNEL_OUT_STEREO,
        AudioFormat.ENCODING_PCM_16BIT,
        intSize, //size of pcm file to read in bytes
        AudioTrack.MODE_STATIC);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //read track from file
        File file = new File(getFilesDir(), fileName);

        int size = (int) file.length();
        byte[] data = new byte[size];

        try {
            FileInputStream fileInputStream = new FileInputStream(file);
            fileInputStream.read(data, 0, size);
            fileInputStream.close();

            audio.write(data, 0, data.length);
        } catch (IOException e) {}
    }

    //change playback speed by factor
    void changeSpeed(double factor) {
        audio.setPlaybackRate((int) (audio.getPlaybackRate() * factor));
    }
}

我的API级别是19,所以我不能使用MediaPlayer
在API级别1中添加了MediaPlayer。MediaPlayer设置播放速度的功能在API 23中引入;当然,我可以使用MediaPlayer,但不是为了改变速度。只是为了正确地回答这个问题:我使用了带有setPlaybackRate()的AudioTrack,这似乎是我的api最合理的解决方案。它回答了你的问题吗?如果是这样,请提供您自己的答案并接受它(几天后您就可以接受)。