Loading api/current.txt +11 −0 Original line number Diff line number Diff line Loading @@ -15654,6 +15654,7 @@ package android.media { method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener); method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener); method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener); method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener); method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener); method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener); method public void setPlaybackRate(float, int); Loading Loading @@ -15711,6 +15712,10 @@ package android.media { method public abstract void onSeekComplete(android.media.MediaPlayer); } public static abstract interface MediaPlayer.OnTimedMetaDataListener { method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData); } public static abstract interface MediaPlayer.OnTimedTextListener { method public abstract void onTimedText(android.media.MediaPlayer, android.media.TimedText); } Loading @@ -15726,6 +15731,7 @@ package android.media { method public int getTrackType(); method public void writeToParcel(android.os.Parcel, int); field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2 field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5 field public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; // 0x4 field public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; // 0x3 field public static final int MEDIA_TRACK_TYPE_UNKNOWN = 0; // 0x0 Loading Loading @@ -16171,6 +16177,11 @@ package android.media { field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2 } public class TimedMetaData { method public byte[] getRawData(); method public long getTimeUs(); } public final class TimedText { method public android.graphics.Rect getBounds(); method public java.lang.String getText(); api/system-current.txt +11 −0 Original line number Diff line number Diff line Loading @@ -16859,6 +16859,7 @@ package android.media { method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener); method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener); method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener); method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener); method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener); method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener); method public void setPlaybackRate(float, int); Loading Loading @@ -16916,6 +16917,10 @@ package android.media { method public abstract void onSeekComplete(android.media.MediaPlayer); } public static abstract interface MediaPlayer.OnTimedMetaDataListener { method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData); } public static abstract interface MediaPlayer.OnTimedTextListener { method public abstract void onTimedText(android.media.MediaPlayer, android.media.TimedText); } Loading @@ -16931,6 +16936,7 @@ package android.media { method public int getTrackType(); method public void writeToParcel(android.os.Parcel, int); field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2 field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5 field public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; // 0x4 field public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; // 0x3 field public static final int MEDIA_TRACK_TYPE_UNKNOWN = 0; // 0x0 Loading Loading @@ -17378,6 +17384,11 @@ package android.media { field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2 } public class TimedMetaData { method public byte[] getRawData(); method public long getTimeUs(); } public final class TimedText { method public android.graphics.Rect getBounds(); method public java.lang.String getText(); media/java/android/media/MediaPlayer.java +54 −0 Original line number Diff line number Diff line Loading @@ -1822,6 +1822,7 @@ public class MediaPlayer implements SubtitleController.Listener public static final int MEDIA_TRACK_TYPE_AUDIO = 2; public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; public static final int MEDIA_TRACK_TYPE_METADATA = 5; final int mTrackType; final MediaFormat mFormat; Loading Loading @@ -2562,6 +2563,7 @@ public class MediaPlayer implements SubtitleController.Listener private static final int MEDIA_ERROR = 100; private static final int MEDIA_INFO = 200; private static final int MEDIA_SUBTITLE_DATA = 201; private static final int MEDIA_META_DATA = 202; private TimeProvider mTimeProvider; Loading Loading @@ -2709,6 +2711,18 @@ public class MediaPlayer implements SubtitleController.Listener } return; case MEDIA_META_DATA: if (mOnTimedMetaDataListener == null) { return; } if (msg.obj instanceof Parcel) { Parcel parcel = (Parcel) msg.obj; TimedMetaData data = TimedMetaData.createTimedMetaDataFromParcel(parcel); parcel.recycle(); mOnTimedMetaDataListener.onTimedMetaData(mMediaPlayer, data); } return; case MEDIA_NOP: // interface test message - ignore break; Loading Loading @@ -2945,6 +2959,46 @@ public class MediaPlayer implements SubtitleController.Listener private OnSubtitleDataListener mOnSubtitleDataListener; /** * Interface definition of a callback to be invoked when a * track has timed metadata available. * * @see MediaPlayer#setOnTimedMetaDataListener(OnTimedMetaDataListener) */ public interface OnTimedMetaDataListener { /** * Called to indicate avaliable timed metadata * <p> * This method will be called as timed metadata is extracted from the media, * in the same order as it occurs in the media. The timing of this event is * not controlled by the associated timestamp. * * @param mp the MediaPlayer associated with this callback * @param data the timed metadata sample associated with this event */ public void onTimedMetaData(MediaPlayer mp, TimedMetaData data); } /** * Register a callback to be invoked when a selected track has timed metadata available. * <p> * Currently only HTTP live streaming data URI's embedded with timed ID3 tags generates * {@link TimedMetaData}. * * @see MediaPlayer#selectTrack(int) * @see MediaPlayer.OnTimedMetaDataListener * @see TimedMetaData * * @param listener the callback that will be run */ public void setOnTimedMetaDataListener(OnTimedMetaDataListener listener) { mOnTimedMetaDataListener = listener; } private OnTimedMetaDataListener mOnTimedMetaDataListener; /* Do not change these values without updating their counterparts * in include/media/mediaplayer.h! */ Loading media/java/android/media/TimedMetaData.java 0 → 100644 +71 −0 Original line number Diff line number Diff line /* * Copyright 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media; import android.os.Parcel; /** * Class that embodies a piece of timed metadata, including * * <ul> * <li> a time stamp, and </li> * <li> raw uninterpreted byte-array extracted directly from the container. </li> * </ul> * * @see MediaPlayer#setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener) */ public class TimedMetaData { private static final String TAG = "TimedMetaData"; private long mTimeUs; private byte[] mRawData; /** * @hide */ static TimedMetaData createTimedMetaDataFromParcel(Parcel parcel) { return new TimedMetaData(parcel); } private TimedMetaData(Parcel parcel) { if (!parseParcel(parcel)) { throw new IllegalArgumentException("parseParcel() fails"); } } public long getTimeUs() { return mTimeUs; } public byte[] getRawData() { return mRawData; } private boolean parseParcel(Parcel parcel) { parcel.setDataPosition(0); if (parcel.dataAvail() == 0) { return false; } mTimeUs = parcel.readLong(); mRawData = new byte[parcel.readInt()]; parcel.readByteArray(mRawData); return true; } } Loading
api/current.txt +11 −0 Original line number Diff line number Diff line Loading @@ -15654,6 +15654,7 @@ package android.media { method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener); method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener); method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener); method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener); method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener); method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener); method public void setPlaybackRate(float, int); Loading Loading @@ -15711,6 +15712,10 @@ package android.media { method public abstract void onSeekComplete(android.media.MediaPlayer); } public static abstract interface MediaPlayer.OnTimedMetaDataListener { method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData); } public static abstract interface MediaPlayer.OnTimedTextListener { method public abstract void onTimedText(android.media.MediaPlayer, android.media.TimedText); } Loading @@ -15726,6 +15731,7 @@ package android.media { method public int getTrackType(); method public void writeToParcel(android.os.Parcel, int); field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2 field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5 field public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; // 0x4 field public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; // 0x3 field public static final int MEDIA_TRACK_TYPE_UNKNOWN = 0; // 0x0 Loading Loading @@ -16171,6 +16177,11 @@ package android.media { field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2 } public class TimedMetaData { method public byte[] getRawData(); method public long getTimeUs(); } public final class TimedText { method public android.graphics.Rect getBounds(); method public java.lang.String getText();
api/system-current.txt +11 −0 Original line number Diff line number Diff line Loading @@ -16859,6 +16859,7 @@ package android.media { method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener); method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener); method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener); method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener); method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener); method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener); method public void setPlaybackRate(float, int); Loading Loading @@ -16916,6 +16917,10 @@ package android.media { method public abstract void onSeekComplete(android.media.MediaPlayer); } public static abstract interface MediaPlayer.OnTimedMetaDataListener { method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData); } public static abstract interface MediaPlayer.OnTimedTextListener { method public abstract void onTimedText(android.media.MediaPlayer, android.media.TimedText); } Loading @@ -16931,6 +16936,7 @@ package android.media { method public int getTrackType(); method public void writeToParcel(android.os.Parcel, int); field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2 field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5 field public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; // 0x4 field public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; // 0x3 field public static final int MEDIA_TRACK_TYPE_UNKNOWN = 0; // 0x0 Loading Loading @@ -17378,6 +17384,11 @@ package android.media { field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2 } public class TimedMetaData { method public byte[] getRawData(); method public long getTimeUs(); } public final class TimedText { method public android.graphics.Rect getBounds(); method public java.lang.String getText();
media/java/android/media/MediaPlayer.java +54 −0 Original line number Diff line number Diff line Loading @@ -1822,6 +1822,7 @@ public class MediaPlayer implements SubtitleController.Listener public static final int MEDIA_TRACK_TYPE_AUDIO = 2; public static final int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; public static final int MEDIA_TRACK_TYPE_METADATA = 5; final int mTrackType; final MediaFormat mFormat; Loading Loading @@ -2562,6 +2563,7 @@ public class MediaPlayer implements SubtitleController.Listener private static final int MEDIA_ERROR = 100; private static final int MEDIA_INFO = 200; private static final int MEDIA_SUBTITLE_DATA = 201; private static final int MEDIA_META_DATA = 202; private TimeProvider mTimeProvider; Loading Loading @@ -2709,6 +2711,18 @@ public class MediaPlayer implements SubtitleController.Listener } return; case MEDIA_META_DATA: if (mOnTimedMetaDataListener == null) { return; } if (msg.obj instanceof Parcel) { Parcel parcel = (Parcel) msg.obj; TimedMetaData data = TimedMetaData.createTimedMetaDataFromParcel(parcel); parcel.recycle(); mOnTimedMetaDataListener.onTimedMetaData(mMediaPlayer, data); } return; case MEDIA_NOP: // interface test message - ignore break; Loading Loading @@ -2945,6 +2959,46 @@ public class MediaPlayer implements SubtitleController.Listener private OnSubtitleDataListener mOnSubtitleDataListener; /** * Interface definition of a callback to be invoked when a * track has timed metadata available. * * @see MediaPlayer#setOnTimedMetaDataListener(OnTimedMetaDataListener) */ public interface OnTimedMetaDataListener { /** * Called to indicate avaliable timed metadata * <p> * This method will be called as timed metadata is extracted from the media, * in the same order as it occurs in the media. The timing of this event is * not controlled by the associated timestamp. * * @param mp the MediaPlayer associated with this callback * @param data the timed metadata sample associated with this event */ public void onTimedMetaData(MediaPlayer mp, TimedMetaData data); } /** * Register a callback to be invoked when a selected track has timed metadata available. * <p> * Currently only HTTP live streaming data URI's embedded with timed ID3 tags generates * {@link TimedMetaData}. * * @see MediaPlayer#selectTrack(int) * @see MediaPlayer.OnTimedMetaDataListener * @see TimedMetaData * * @param listener the callback that will be run */ public void setOnTimedMetaDataListener(OnTimedMetaDataListener listener) { mOnTimedMetaDataListener = listener; } private OnTimedMetaDataListener mOnTimedMetaDataListener; /* Do not change these values without updating their counterparts * in include/media/mediaplayer.h! */ Loading
media/java/android/media/TimedMetaData.java 0 → 100644 +71 −0 Original line number Diff line number Diff line /* * Copyright 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media; import android.os.Parcel; /** * Class that embodies a piece of timed metadata, including * * <ul> * <li> a time stamp, and </li> * <li> raw uninterpreted byte-array extracted directly from the container. </li> * </ul> * * @see MediaPlayer#setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener) */ public class TimedMetaData { private static final String TAG = "TimedMetaData"; private long mTimeUs; private byte[] mRawData; /** * @hide */ static TimedMetaData createTimedMetaDataFromParcel(Parcel parcel) { return new TimedMetaData(parcel); } private TimedMetaData(Parcel parcel) { if (!parseParcel(parcel)) { throw new IllegalArgumentException("parseParcel() fails"); } } public long getTimeUs() { return mTimeUs; } public byte[] getRawData() { return mRawData; } private boolean parseParcel(Parcel parcel) { parcel.setDataPosition(0); if (parcel.dataAvail() == 0) { return false; } mTimeUs = parcel.readLong(); mRawData = new byte[parcel.readInt()]; parcel.readByteArray(mRawData); return true; } }