summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/jar
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2019-02-06 15:35:04 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-02-08 09:57:53 +0000
commit054a8f3b1f692d14687ce14fa8d143edc8f988f0 (patch)
treeba7238afa2e8a5467d89c2967e054940c053617a /src/plugins/android/jar
parent5fa4b2e448734da65ec24f2ce8234a4d3e4a832e (diff)
Android: Implement audio roles
Introduced custom and standard audio role controls using MediaPlayer.setAudioAttributes(AudioAttributes) which added in API level 21. Custom audio roles might contain a list of roles separated by comma. E.g "CONTENT_TYPE_MOVIE,USAGE_ALARM", which means content type is movie and usage is alarm. [ChangeLog][Platform Specific Changes][Android] Implemented audio roles. Task-number: QTBUG-73119 Change-Id: I281d1ce899d29f54d271516a1fca5f11c897fc90 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/plugins/android/jar')
-rw-r--r--src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
index 647cc7fe0..6569a7b8d 100644
--- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
+++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
@@ -46,6 +46,7 @@ import java.io.FileInputStream;
// API is level is < 9 unless marked otherwise.
import android.content.Context;
import android.media.MediaPlayer;
+import android.media.AudioAttributes;
import android.net.Uri;
import android.util.Log;
import java.io.FileDescriptor;
@@ -65,6 +66,7 @@ public class QtAndroidMediaPlayer
native public void onStateChangedNative(int state, long id);
private MediaPlayer mMediaPlayer = null;
+ private AudioAttributes mAudioAttributes = null;
private Uri mUri = null;
private final long mID;
private final Context mContext;
@@ -235,6 +237,7 @@ public class QtAndroidMediaPlayer
setState(State.Idle);
// Make sure the new media player has the volume that was set on the QMediaPlayer
setVolumeHelper(mMuted ? 0 : mVolume);
+ setAudioAttributes(mMediaPlayer, mAudioAttributes);
}
}
@@ -547,4 +550,26 @@ public class QtAndroidMediaPlayer
setState(State.Uninitialized);
}
+
+ public void setAudioAttributes(int type, int usage)
+ {
+ mAudioAttributes = new AudioAttributes.Builder()
+ .setUsage(usage)
+ .setContentType(type)
+ .build();
+
+ setAudioAttributes(mMediaPlayer, mAudioAttributes);
+ }
+
+ static private void setAudioAttributes(MediaPlayer player, AudioAttributes attr)
+ {
+ if (player == null || attr == null)
+ return;
+
+ try {
+ player.setAudioAttributes(attr);
+ } catch (final IllegalArgumentException e) {
+ Log.d(TAG, "" + e.getMessage());
+ }
+ }
}