API for app to know what to set in Activity.setVolumeControlStream()

Stream types are deprecated to describe an audio playback use case.
But they are used for volume control. This API helps the developer
  go from an AudioAttributes instance used for playback, to a
  stream type used to describe which volume stream type should be
  used when the user presses on the volume keys.

Test: see AudioAttributes cts test
Bug 21267880

Change-Id: I2b9da5b282e8ed2342c61c14a7f59b874d0ce979
This commit is contained in:
Jean-Michel Trivi
2017-02-04 16:35:25 -08:00
parent ddb80216b9
commit a690473348
4 changed files with 7 additions and 4 deletions

View File

@@ -20440,6 +20440,7 @@ package android.media {
method public int getContentType();
method public int getFlags();
method public int getUsage();
method public static int getVolumeControlStream(android.media.AudioAttributes);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2

View File

@@ -21996,6 +21996,7 @@ package android.media {
method public int getContentType();
method public int getFlags();
method public int getUsage();
method public static int getVolumeControlStream(android.media.AudioAttributes);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2

View File

@@ -20532,6 +20532,7 @@ package android.media {
method public int getContentType();
method public int getFlags();
method public int getUsage();
method public static int getVolumeControlStream(android.media.AudioAttributes);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2

View File

@@ -913,13 +913,13 @@ public final class AudioAttributes implements Parcelable {
}
}
/**
* @hide
* CANDIDATE FOR PUBLIC (or at least SYSTEM) API
* Returns the stream type matching the given attributes for volume control.
* Use this method to derive the stream type needed to configure the volume
* control slider in an {@link Activity} with {@link Activity#setVolumeControlStream(int)}.
* control slider in an {@link android.app.Activity} with
* {@link android.app.Activity#setVolumeControlStream(int)}.
* <BR>Do not use this method to set the stream type on an audio player object
* (e.g. {@link AudioTrack}, {@link MediaPlayer}), use <code>AudioAttributes</code> instead.
* (e.g. {@link AudioTrack}, {@link MediaPlayer}) as this is deprecated,
* use <code>AudioAttributes</code> instead.
* @param aa non-null AudioAttributes.
* @return a valid stream type for <code>Activity</code> or stream volume control that matches
* the attributes, or {@link AudioManager#USE_DEFAULT_STREAM_TYPE} if there isn't a direct