diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-02-06 15:35:04 +0100 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-02-08 09:57:53 +0000 |
commit | 054a8f3b1f692d14687ce14fa8d143edc8f988f0 (patch) | |
tree | ba7238afa2e8a5467d89c2967e054940c053617a /src/plugins/android/jar | |
parent | 5fa4b2e448734da65ec24f2ce8234a4d3e4a832e (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.java | 25 |
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()); + } + } } |