Loading media/java/android/media/MediaItem2.java +8 −2 Original line number Diff line number Diff line Loading @@ -36,9 +36,9 @@ import java.lang.annotation.RetentionPolicy; * @hide */ public class MediaItem2 { // TODO(jaewan): Keep DataSourceDesc. private final int mFlags; private MediaMetadata2 mMetadata; private DataSourceDesc mDataSourceDesc; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading @@ -64,8 +64,10 @@ public class MediaItem2 { * @param metadata metadata with the media id. * @param flags The flags for this item. */ public MediaItem2(@NonNull MediaMetadata2 metadata, @Flags int flags) { public MediaItem2(@Nullable MediaMetadata2 metadata, @Nullable DataSourceDesc data, @Flags int flags) { mFlags = flags; mDataSourceDesc = data; setMetadata(metadata); } Loading Loading @@ -139,4 +141,8 @@ public class MediaItem2 { public @Nullable String getMediaId() { return mMetadata.getMediaId(); } public @Nullable DataSourceDesc getDataSourceDesc() { return mDataSourceDesc; } } media/java/android/media/MediaPlayerInterface.java +3 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,9 @@ public interface MediaPlayerInterface { @Nullable AudioAttributes getAudioAttributes(); void setPlaylist(List<MediaItem2> item, PlaylistParams param); void setPlaylist(List<MediaItem2> list, PlaylistParams param); List<MediaItem2> getPlaylist(); void setCurrentPlaylistItem(int index); void setPlaylistParams(PlaylistParams params); PlaylistParams getPlaylistParams(); Loading media/java/android/media/MediaSession2.java +4 −0 Original line number Diff line number Diff line Loading @@ -1262,6 +1262,10 @@ public class MediaSession2 implements AutoCloseable { mProvider.setPlaylist_impl(playlist, param); } public List<MediaItem2> getPlaylist() { return mProvider.getPlaylist_impl(); } /** * Sets the {@link PlaylistParams} for the current play list. Repeat/shuffle mode and metadata * for the list can be set by calling this method. Loading media/java/android/media/SessionPlayer2.java 0 → 100644 +142 −0 Original line number Diff line number Diff line /* * Copyright 2018 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.annotation.SystemApi; import android.content.Context; import android.media.MediaSession2.PlaylistParams; import android.media.update.ApiLoader; import android.media.update.SessionPlayer2Provider; import java.util.List; import java.util.concurrent.Executor; /** * Implementation of the {@link MediaPlayerInterface} which is backed by the {@link MediaPlayer2} * @hide */ public class SessionPlayer2 implements MediaPlayerInterface { private final SessionPlayer2Provider mProvider; public SessionPlayer2(Context context) { mProvider = ApiLoader.getProvider(context).createSessionPlayer2(context, this); } @Override public void play() { mProvider.play_impl(); } @Override public void prepare() { mProvider.prepare_impl(); } @Override public void pause() { mProvider.pause_impl(); } @Override public void stop() { mProvider.stop_impl(); } @Override public void skipToPrevious() { mProvider.skipToPrevious_impl(); } @Override public void skipToNext() { mProvider.skipToNext_impl(); } @Override public void seekTo(long pos) { mProvider.seekTo_impl(pos); } @Override public void fastForward() { mProvider.fastForward_impl(); } @Override public void rewind() { mProvider.rewind_impl(); } @Override public PlaybackState2 getPlaybackState() { return mProvider.getPlaybackState_impl(); } @Override public void setAudioAttributes(AudioAttributes attributes) { mProvider.setAudioAttributes_impl(attributes); } @Override public AudioAttributes getAudioAttributes() { return mProvider.getAudioAttributes_impl(); } @Override public void setPlaylist(List<MediaItem2> list, PlaylistParams param) { mProvider.setPlaylist_impl(list, param); } @Override public List<MediaItem2> getPlaylist() { return mProvider.getPlaylist_impl(); } @Override public void setCurrentPlaylistItem(int index) { mProvider.setCurrentPlaylistItem_impl(index); } @Override public void setPlaylistParams(PlaylistParams params) { mProvider.setPlaylistParams_impl(params); } @Override public PlaylistParams getPlaylistParams() { return mProvider.getPlaylistParams_impl(); } @Override public void addPlaybackListener(Executor executor, PlaybackListener listener) { mProvider.addPlaybackListener_impl(executor, listener); } @Override public void removePlaybackListener(PlaybackListener listener) { mProvider.removePlaybackListener_impl(listener); } public MediaPlayer2 getPlayer() { return mProvider.getPlayer_impl(); } @SystemApi public SessionPlayer2Provider getProvider() { return mProvider; } } media/java/android/media/update/MediaSession2Provider.java +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ public interface MediaSession2Provider extends TransportControlProvider { ResultReceiver receiver); void sendCustomCommand_impl(Command command, Bundle args); void setPlaylist_impl(List<MediaItem2> playlist, PlaylistParams param); List<MediaItem2> getPlaylist_impl(); void setPlaylistParams_impl(PlaylistParams params); PlaylistParams getPlaylistParams_impl(); Loading Loading
media/java/android/media/MediaItem2.java +8 −2 Original line number Diff line number Diff line Loading @@ -36,9 +36,9 @@ import java.lang.annotation.RetentionPolicy; * @hide */ public class MediaItem2 { // TODO(jaewan): Keep DataSourceDesc. private final int mFlags; private MediaMetadata2 mMetadata; private DataSourceDesc mDataSourceDesc; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading @@ -64,8 +64,10 @@ public class MediaItem2 { * @param metadata metadata with the media id. * @param flags The flags for this item. */ public MediaItem2(@NonNull MediaMetadata2 metadata, @Flags int flags) { public MediaItem2(@Nullable MediaMetadata2 metadata, @Nullable DataSourceDesc data, @Flags int flags) { mFlags = flags; mDataSourceDesc = data; setMetadata(metadata); } Loading Loading @@ -139,4 +141,8 @@ public class MediaItem2 { public @Nullable String getMediaId() { return mMetadata.getMediaId(); } public @Nullable DataSourceDesc getDataSourceDesc() { return mDataSourceDesc; } }
media/java/android/media/MediaPlayerInterface.java +3 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,9 @@ public interface MediaPlayerInterface { @Nullable AudioAttributes getAudioAttributes(); void setPlaylist(List<MediaItem2> item, PlaylistParams param); void setPlaylist(List<MediaItem2> list, PlaylistParams param); List<MediaItem2> getPlaylist(); void setCurrentPlaylistItem(int index); void setPlaylistParams(PlaylistParams params); PlaylistParams getPlaylistParams(); Loading
media/java/android/media/MediaSession2.java +4 −0 Original line number Diff line number Diff line Loading @@ -1262,6 +1262,10 @@ public class MediaSession2 implements AutoCloseable { mProvider.setPlaylist_impl(playlist, param); } public List<MediaItem2> getPlaylist() { return mProvider.getPlaylist_impl(); } /** * Sets the {@link PlaylistParams} for the current play list. Repeat/shuffle mode and metadata * for the list can be set by calling this method. Loading
media/java/android/media/SessionPlayer2.java 0 → 100644 +142 −0 Original line number Diff line number Diff line /* * Copyright 2018 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.annotation.SystemApi; import android.content.Context; import android.media.MediaSession2.PlaylistParams; import android.media.update.ApiLoader; import android.media.update.SessionPlayer2Provider; import java.util.List; import java.util.concurrent.Executor; /** * Implementation of the {@link MediaPlayerInterface} which is backed by the {@link MediaPlayer2} * @hide */ public class SessionPlayer2 implements MediaPlayerInterface { private final SessionPlayer2Provider mProvider; public SessionPlayer2(Context context) { mProvider = ApiLoader.getProvider(context).createSessionPlayer2(context, this); } @Override public void play() { mProvider.play_impl(); } @Override public void prepare() { mProvider.prepare_impl(); } @Override public void pause() { mProvider.pause_impl(); } @Override public void stop() { mProvider.stop_impl(); } @Override public void skipToPrevious() { mProvider.skipToPrevious_impl(); } @Override public void skipToNext() { mProvider.skipToNext_impl(); } @Override public void seekTo(long pos) { mProvider.seekTo_impl(pos); } @Override public void fastForward() { mProvider.fastForward_impl(); } @Override public void rewind() { mProvider.rewind_impl(); } @Override public PlaybackState2 getPlaybackState() { return mProvider.getPlaybackState_impl(); } @Override public void setAudioAttributes(AudioAttributes attributes) { mProvider.setAudioAttributes_impl(attributes); } @Override public AudioAttributes getAudioAttributes() { return mProvider.getAudioAttributes_impl(); } @Override public void setPlaylist(List<MediaItem2> list, PlaylistParams param) { mProvider.setPlaylist_impl(list, param); } @Override public List<MediaItem2> getPlaylist() { return mProvider.getPlaylist_impl(); } @Override public void setCurrentPlaylistItem(int index) { mProvider.setCurrentPlaylistItem_impl(index); } @Override public void setPlaylistParams(PlaylistParams params) { mProvider.setPlaylistParams_impl(params); } @Override public PlaylistParams getPlaylistParams() { return mProvider.getPlaylistParams_impl(); } @Override public void addPlaybackListener(Executor executor, PlaybackListener listener) { mProvider.addPlaybackListener_impl(executor, listener); } @Override public void removePlaybackListener(PlaybackListener listener) { mProvider.removePlaybackListener_impl(listener); } public MediaPlayer2 getPlayer() { return mProvider.getPlayer_impl(); } @SystemApi public SessionPlayer2Provider getProvider() { return mProvider; } }
media/java/android/media/update/MediaSession2Provider.java +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ public interface MediaSession2Provider extends TransportControlProvider { ResultReceiver receiver); void sendCustomCommand_impl(Command command, Bundle args); void setPlaylist_impl(List<MediaItem2> playlist, PlaylistParams param); List<MediaItem2> getPlaylist_impl(); void setPlaylistParams_impl(PlaylistParams params); PlaylistParams getPlaylistParams_impl(); Loading