質問: androidでmp3を2倍速で再生しようとしています。 SoundPoolのplayには、 public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) rate:再生速度(0.5〜2.0:0.5倍から2倍の速度まで設定できる)とありました。 今回、再生するmp3は長さが1時間ぐらいのなので、SoundPoolでは再生できそうにないので、別の方法を探しています。すみませんがアドバイスをよろしくお願い致します。
回答: 自己レスです。 音程を変えずに2倍速で再生することができました。 以下のExoPlayerとsonicを組み合わせることで実現できました。 ExoPlayerでは、MediaCodecでmp3をデコードしてそれをAudioTrackに出力して再生していました。それを、AudioTrackに出力する前に、sonicの音声の波形データを加工する処理を追加することで2倍速で再生できました。 ソースの変更箇所は、ごくわずかで思ってより簡単に済みました。アドバイスありがとうございました。