MediaPlayer.TrackInfo: add getFormat() method

This returns the MediaFormat of the track or null (for now).

Change-Id: Ib88fc229b661942b2ed136204fdc43da427d7aed
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10326117
This commit is contained in:
Lajos Molnar
2013-08-15 12:05:52 -07:00
parent dc775c66bf
commit 1c56a67dbb
2 changed files with 27 additions and 4 deletions

View File

@ -12567,6 +12567,7 @@ package android.media {
public static class MediaPlayer.TrackInfo implements android.os.Parcelable {
method public int describeContents();
method public android.media.MediaFormat getFormat();
method public java.lang.String getLanguage();
method public int getTrackType();
method public void writeToParcel(android.os.Parcel, int);

View File

@ -38,6 +38,7 @@ import android.view.SurfaceHolder;
import android.graphics.Bitmap;
import android.graphics.SurfaceTexture;
import android.media.AudioManager;
import android.media.MediaFormat;
import java.io.File;
import java.io.FileDescriptor;
@ -1526,7 +1527,19 @@ public class MediaPlayer
* ISO-639-2 language code, "und", is returned.
*/
public String getLanguage() {
return mLanguage;
String language = mFormat.getString(MediaFormat.KEY_LANGUAGE);
return language == null ? "und" : language;
}
/**
* Gets the {@link MediaFormat} of the track. If the format is
* unknown or could not be determined, null is returned.
*/
public MediaFormat getFormat() {
if (mTrackType == MEDIA_TRACK_TYPE_TIMEDTEXT) {
return mFormat;
}
return null;
}
public static final int MEDIA_TRACK_TYPE_UNKNOWN = 0;
@ -1535,11 +1548,20 @@ public class MediaPlayer
public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3;
final int mTrackType;
final String mLanguage;
final MediaFormat mFormat;
TrackInfo(Parcel in) {
mTrackType = in.readInt();
mLanguage = in.readString();
// TODO: parcel in the full MediaFormat
String language = in.readString();
if (mTrackType == MEDIA_TRACK_TYPE_TIMEDTEXT) {
mFormat = MediaFormat.createSubtitleFormat(
MEDIA_MIMETYPE_TEXT_SUBRIP, language);
} else {
mFormat = new MediaFormat();
mFormat.setString(MediaFormat.KEY_LANGUAGE, language);
}
}
/**
@ -1556,7 +1578,7 @@ public class MediaPlayer
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mTrackType);
dest.writeString(mLanguage);
dest.writeString(getLanguage());
}
/**