diff --git a/api/current.txt b/api/current.txt index 3ea8b67ba9dfe..a7df2a1c9079d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -17852,7 +17852,7 @@ package android.media.tv { method public void onTimeShiftPause(); method public void onTimeShiftResume(); method public void onTimeShiftSeekTo(long); - method public void onTimeShiftSetPlaybackRate(float, int); + method public void onTimeShiftSetPlaybackParams(android.media.PlaybackParams); method public boolean onTouchEvent(android.view.MotionEvent); method public boolean onTrackballEvent(android.view.MotionEvent); method public abstract boolean onTune(android.net.Uri); @@ -17864,7 +17864,7 @@ package android.media.tv { method public int describeContents(); method public final int getAudioChannelCount(); method public final int getAudioSampleRate(); - method public final java.lang.String getDescription(); + method public final java.lang.CharSequence getDescription(); method public final android.os.Bundle getExtra(); method public final java.lang.String getId(); method public final java.lang.String getLanguage(); @@ -17885,7 +17885,7 @@ package android.media.tv { method public android.media.tv.TvTrackInfo build(); method public final android.media.tv.TvTrackInfo.Builder setAudioChannelCount(int); method public final android.media.tv.TvTrackInfo.Builder setAudioSampleRate(int); - method public final android.media.tv.TvTrackInfo.Builder setDescription(java.lang.String); + method public final android.media.tv.TvTrackInfo.Builder setDescription(java.lang.CharSequence); method public final android.media.tv.TvTrackInfo.Builder setExtra(android.os.Bundle); method public final android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String); method public final android.media.tv.TvTrackInfo.Builder setVideoFrameRate(float); @@ -17913,7 +17913,7 @@ package android.media.tv { method public void timeShiftPause(); method public void timeShiftResume(); method public void timeShiftSeekTo(long); - method public void timeShiftSetPlaybackRate(float, int); + method public void timeShiftSetPlaybackParams(android.media.PlaybackParams); method public void tune(java.lang.String, android.net.Uri); } diff --git a/api/system-current.txt b/api/system-current.txt index 6c51cbaf8188b..328d6948fd203 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -19298,7 +19298,7 @@ package android.media.tv { method public void onTimeShiftPause(); method public void onTimeShiftResume(); method public void onTimeShiftSeekTo(long); - method public void onTimeShiftSetPlaybackRate(float, int); + method public void onTimeShiftSetPlaybackParams(android.media.PlaybackParams); method public boolean onTouchEvent(android.view.MotionEvent); method public boolean onTrackballEvent(android.view.MotionEvent); method public abstract boolean onTune(android.net.Uri); @@ -19334,7 +19334,7 @@ package android.media.tv { method public int describeContents(); method public final int getAudioChannelCount(); method public final int getAudioSampleRate(); - method public final java.lang.String getDescription(); + method public final java.lang.CharSequence getDescription(); method public final android.os.Bundle getExtra(); method public final java.lang.String getId(); method public final java.lang.String getLanguage(); @@ -19355,7 +19355,7 @@ package android.media.tv { method public android.media.tv.TvTrackInfo build(); method public final android.media.tv.TvTrackInfo.Builder setAudioChannelCount(int); method public final android.media.tv.TvTrackInfo.Builder setAudioSampleRate(int); - method public final android.media.tv.TvTrackInfo.Builder setDescription(java.lang.String); + method public final android.media.tv.TvTrackInfo.Builder setDescription(java.lang.CharSequence); method public final android.media.tv.TvTrackInfo.Builder setExtra(android.os.Bundle); method public final android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String); method public final android.media.tv.TvTrackInfo.Builder setVideoFrameRate(float); @@ -19388,7 +19388,7 @@ package android.media.tv { method public void timeShiftPause(); method public void timeShiftResume(); method public void timeShiftSeekTo(long); - method public void timeShiftSetPlaybackRate(float, int); + method public void timeShiftSetPlaybackParams(android.media.PlaybackParams); method public void tune(java.lang.String, android.net.Uri); method public void tune(java.lang.String, android.net.Uri, android.os.Bundle); method public void unblockContent(android.media.tv.TvContentRating); diff --git a/media/java/android/media/tv/ITvInputSessionWrapper.java b/media/java/android/media/tv/ITvInputSessionWrapper.java index 019165243d854..58954bd3a9e33 100644 --- a/media/java/android/media/tv/ITvInputSessionWrapper.java +++ b/media/java/android/media/tv/ITvInputSessionWrapper.java @@ -18,6 +18,7 @@ package android.media.tv; import android.content.Context; import android.graphics.Rect; +import android.media.PlaybackParams; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; @@ -172,7 +173,10 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand break; } case DO_TIME_SHIFT_SET_PLAYBACK_RATE: { - mTvInputSessionImpl.timeShiftSetPlaybackRate((Float) msg.obj, msg.arg1); + PlaybackParams params = new PlaybackParams() + .setSpeed((Float) msg.obj) + .setAudioFallbackMode(msg.arg1); + mTvInputSessionImpl.timeShiftSetPlaybackParams(params); break; } case DO_TIME_SHIFT_ENABLE_POSITION_TRACKING: { diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 8b0472a95a2c1..4b84090861cdf 100644 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -26,6 +26,8 @@ import android.content.Intent; import android.graphics.PixelFormat; import android.graphics.Rect; import android.hardware.hdmi.HdmiDeviceInfo; +import android.media.PlaybackParams; +import android.media.tv.TvInputService.HardwareSession; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -586,7 +588,7 @@ public abstract class TvInputService extends Service { * set playback rate and audio mode. The implementation should override * {@link #onTimeShiftPause}, {@link #onTimeShiftResume}, {@link #onTimeShiftSeekTo}, * {@link #onTimeShiftGetStartPosition}, {@link #onTimeShiftGetCurrentPosition} and - * {@link #onTimeShiftSetPlaybackRate}. + * {@link #onTimeShiftSetPlaybackParams}. * * @param status The current time shift status. Should be one of the followings. *
Once a playback rate is set, the implementation should honor the value until a new - * tune request. Pause/resume/seek request does not reset the playback rate previously set. + *
Once the playback parameters are set, the implementation should honor the current + * settings until the next tune request. Pause/resume/seek request does not reset the + * parameters previously set. * - * @param rate The ratio between desired playback rate and normal one. - * @param audioMode Audio playback mode. Must be one of the supported audio modes: - *
Note that {@code timeMs} is not relative time in the program but wall-clock time, + * which is intended to avoid calling this method unnecessarily around program boundaries. + * * @param inputId The ID of the TV input bound to this view. * @param timeMs The start playback position of the time shifted program, in milliseconds * since the epoch. @@ -830,6 +829,9 @@ public class TvView extends ViewGroup { /** * This is called when the current playback position is changed. * + *
Note that {@code timeMs} is not relative time in the program but wall-clock time, + * which is intended to avoid calling this method unnecessarily around program boundaries. + * * @param inputId The ID of the TV input bound to this view. * @param timeMs The current playback position of the time shifted program, in milliseconds * since the epoch.