Android關於聲音播放(MediaPlayer)--如何改變播放速率
阿新 • • 發佈:2018-11-20
喜歡折騰,最近想開發一款可以變速的音樂播放器,先做下技術調研。
百度&谷歌了一下,如果不做底層定製,整個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以前,需要另想辦法處理,後續查到好的方法再補充 } }
原文:簡書ThinkinLiu 部落格: IT老五
另外還找到 AudioTrack及 OpenGL es相關的內容,明天再看看是否有更好,相容性更高的解決方案。
如果哪位朋友有好的方法,麻煩告知,多謝。