喜欢折腾,最近想开发一款可以变速的音乐播放器,先做下技术调研。
百度&谷歌了一下,如果不做底层定制,整个mp3文件播放在java层可以实现的方法主要是MediaPlayer。
而且,在Android 6.0+(23+)MediaPlayer可以通过setSpeed来改变播放速率
在代码中,我们需要:
// 设置音乐播放速度
// IT老五(简书ThinkinLiu) http://itlao5.com
public static void changeplayerSpeed(float speed) {
if (mPlayer == null) {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// API 23 (6.0)以上 ,通过设置Speed改变音乐的播放速率
if (mPlayer.isPlaying()) {
// 判断是否正在播放,未播放时,要在设置Speed后,暂停音乐播放
mPlayer.setPlaybackParams(mPlayer.getPlaybackParams().setSpeed(speed));
} else {
mPlayer.setPlaybackParams(mPlayer.getPlaybackParams().setSpeed(speed));
mPlayer.pause();
}
} else {
// 在Android6.0以前,需要另想办法处理,后续查到好的方法再补充
}
}
个人博客: IT老五
微信公众号:【IT老五(it-lao5)】,一起源创,一起学习!
另外还找到 AudioTrack及 OpenGL es相关的内容,明天再看看是否有更好,兼容性更高的解决方案。
如果哪位朋友有好的方法,麻烦告知,多谢。