我该如何实施
setRate(float f)
对于我的 Android MediaPlayer,其次是否可行?
Android 6.0 添加了PlaybackParams
for MediaPlayer
,所以你现在可以这样做:
String recordingPath = recordingDirectory + File.separator + "music.mp3";
MediaPlayer audioPlayer = MediaPlayer.create(getApplicationContext(), Uri.parse(recordingPath));
audioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
PlaybackParams params = new PlaybackParams();
params.setSpeed(0.75f);
audioPlayer.setPlaybackParams(params);
audioPlayer.start();
我还没有 Android 6 设备,但这在模拟器中对我有用。
根据 Android 开发人员文档,您可能必须改用 SoundPool。
Android 开发者:Media SoundPool-setRate
public final void setRate (int streamID, float rate)
更改播放速率。播放速率允许应用程序改变声音的播放速率(音高)。值 1.0 表示以原始频率播放。值 2.0 表示播放速度加倍,值 0.5 表示播放速度减半。如果流不存在,它将不起作用。
参数
streamID : play() 函数返回的 streamID
rate:播放速率(1.0 = 正常播放,范围 0.5 到 2.0)