From 33d20d5b1489deb2258797004aef04359d7eccc5 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Mon, 2 Nov 2015 15:13:13 +0100 Subject: [PATCH] Android mediaplayer: Set pitch and speed on Marshmallow --- build.gradle | 3 -- library/build.gradle | 8 ++-- .../antennapod/audio/AndroidAudioPlayer.java | 38 ++++++++++++++++--- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index c6371d6..4acb2b5 100644 --- a/build.gradle +++ b/build.gradle @@ -6,9 +6,6 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:1.3.1' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files } } diff --git a/library/build.gradle b/library/build.gradle index b7eacc2..bf282b5 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,17 +1,17 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 22 - buildToolsVersion '22.0.1' + compileSdkVersion 23 + buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 9 targetSdkVersion 23 versionCode 1 - versionName "1.0.2" + versionName "1.0.3" } buildTypes { release { - minifyEnabled false + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } diff --git a/library/src/main/java/org/antennapod/audio/AndroidAudioPlayer.java b/library/src/main/java/org/antennapod/audio/AndroidAudioPlayer.java index 2476343..7b8be82 100644 --- a/library/src/main/java/org/antennapod/audio/AndroidAudioPlayer.java +++ b/library/src/main/java/org/antennapod/audio/AndroidAudioPlayer.java @@ -16,7 +16,9 @@ import android.content.Context; import android.media.MediaPlayer; +import android.media.PlaybackParams; import android.net.Uri; +import android.os.Build; import android.util.Log; import java.io.IOException; @@ -210,13 +212,23 @@ public AndroidAudioPlayer(org.antennapod.audio.MediaPlayer owningMediaPlayer, Co public int getAudioSessionId() { return mp.getAudioSessionId(); } + + @Override public boolean canSetPitch() { - return false; + if(Build.VERSION.SDK_INT >= 23) { + return true; + } else { + return false; + } } @Override public boolean canSetSpeed() { - return false; + if(Build.VERSION.SDK_INT >= 23) { + return true; + } else { + return false; + } } @Override @@ -404,18 +416,34 @@ public void setLooping(boolean loop) { @Override public void setPitchStepsAdjustment(float pitchSteps) { - // Can't! + if(Build.VERSION.SDK_INT < 23) { + return; + } + PlaybackParams params = mp.getPlaybackParams(); + params.setPitch(params.getPitch() + pitchSteps); + mp.setPlaybackParams(params); } @Override public void setPlaybackPitch(float f) { - // Can't! + Log.d(AMP_TAG, "setPlaybackPitch(" + f + ")"); + if (Build.VERSION.SDK_INT < 23) { + return; + } + PlaybackParams params = mp.getPlaybackParams(); + params.setPitch(f); + mp.setPlaybackParams(params); } @Override public void setPlaybackSpeed(float f) { - // Can't! Log.d(AMP_TAG, "setPlaybackSpeed(" + f + ")"); + if (Build.VERSION.SDK_INT < 23) { + return; + } + PlaybackParams params = mp.getPlaybackParams(); + params.setSpeed(f); + mp.setPlaybackParams(params); } @Override