Merge "Support checking hasHapticChannels on a MediaPlayer."

This commit is contained in:
TreeHugger Robot
2022-10-11 16:58:37 +00:00
committed by Android (Google) Code Review

View File

@@ -2527,11 +2527,21 @@ public class MediaPlayer extends PlayerBase
return language == null ? "und" : language;
}
/**
* Returns whether this track contains haptic channels in the audio track.
* @hide
*/
public boolean hasHapticChannels() {
return mFormat != null && mFormat.containsKey(MediaFormat.KEY_HAPTIC_CHANNEL_COUNT)
&& mFormat.getInteger(MediaFormat.KEY_HAPTIC_CHANNEL_COUNT) > 0;
}
/**
* Gets the {@link MediaFormat} of the track. If the format is
* unknown or could not be determined, null is returned.
*/
public MediaFormat getFormat() {
// Note: The format isn't exposed for audio because it is incomplete.
if (mTrackType == MEDIA_TRACK_TYPE_TIMEDTEXT
|| mTrackType == MEDIA_TRACK_TYPE_SUBTITLE) {
return mFormat;
@@ -2574,6 +2584,11 @@ public class MediaPlayer extends PlayerBase
mFormat.setInteger(MediaFormat.KEY_IS_AUTOSELECT, in.readInt());
mFormat.setInteger(MediaFormat.KEY_IS_DEFAULT, in.readInt());
mFormat.setInteger(MediaFormat.KEY_IS_FORCED_SUBTITLE, in.readInt());
} else if (mTrackType == MEDIA_TRACK_TYPE_AUDIO) {
boolean hasHapticChannels = in.readBoolean();
if (hasHapticChannels) {
mFormat.setInteger(MediaFormat.KEY_HAPTIC_CHANNEL_COUNT, in.readInt());
}
}
}
@@ -2604,6 +2619,13 @@ public class MediaPlayer extends PlayerBase
dest.writeInt(mFormat.getInteger(MediaFormat.KEY_IS_AUTOSELECT));
dest.writeInt(mFormat.getInteger(MediaFormat.KEY_IS_DEFAULT));
dest.writeInt(mFormat.getInteger(MediaFormat.KEY_IS_FORCED_SUBTITLE));
} else if (mTrackType == MEDIA_TRACK_TYPE_AUDIO) {
boolean hasHapticChannels =
mFormat.containsKey(MediaFormat.KEY_HAPTIC_CHANNEL_COUNT);
dest.writeBoolean(hasHapticChannels);
if (hasHapticChannels) {
dest.writeInt(mFormat.getInteger(MediaFormat.KEY_HAPTIC_CHANNEL_COUNT));
}
}
}