diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.java index 716f1aae58..f405d650e6 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.java @@ -29,27 +29,27 @@ import com.google.android.exoplayer2.util.Assertions; public final class DefaultMediaItemConverter implements MediaItemConverter { @Override - public MediaItem convertToExoPlayerMediaItem(androidx.media2.common.MediaItem androidXMediaItem) { - if (androidXMediaItem instanceof FileMediaItem) { + public MediaItem convertToExoPlayerMediaItem(androidx.media2.common.MediaItem media2MediaItem) { + if (media2MediaItem instanceof FileMediaItem) { throw new IllegalStateException("FileMediaItem isn't supported"); } - if (androidXMediaItem instanceof CallbackMediaItem) { + if (media2MediaItem instanceof CallbackMediaItem) { throw new IllegalStateException("CallbackMediaItem isn't supported"); } MediaItem.Builder exoPlayerMediaItemBuilder = new MediaItem.Builder(); // Set mediaItem as tag for creating MediaSource via MediaSourceFactory methods. - exoPlayerMediaItemBuilder.setTag(androidXMediaItem); + exoPlayerMediaItemBuilder.setTag(media2MediaItem); - // Media ID or URI must be present. Get it from androidx.MediaItem if possible. + // Media ID or URI must be present. Get it from media2 MediaItem if possible. @Nullable Uri uri = null; @Nullable String mediaId = null; - if (androidXMediaItem instanceof UriMediaItem) { - UriMediaItem uriMediaItem = (UriMediaItem) androidXMediaItem; + if (media2MediaItem instanceof UriMediaItem) { + UriMediaItem uriMediaItem = (UriMediaItem) media2MediaItem; uri = uriMediaItem.getUri(); } - @Nullable MediaMetadata metadata = androidXMediaItem.getMetadata(); + @Nullable MediaMetadata metadata = media2MediaItem.getMetadata(); if (metadata != null) { mediaId = metadata.getString(MediaMetadata.METADATA_KEY_MEDIA_ID); @Nullable String uriString = metadata.getString(MediaMetadata.METADATA_KEY_MEDIA_URI); @@ -59,17 +59,17 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { } if (uri == null) { // Generate a Uri to make it non-null. If not, tag will be ignored. - uri = Uri.parse("exoplayer://" + androidXMediaItem.hashCode()); + uri = Uri.parse("exoplayer://" + media2MediaItem.hashCode()); } exoPlayerMediaItemBuilder.setUri(uri); exoPlayerMediaItemBuilder.setMediaId(mediaId); - if (androidXMediaItem.getStartPosition() != androidx.media2.common.MediaItem.POSITION_UNKNOWN) { - exoPlayerMediaItemBuilder.setClipStartPositionMs(androidXMediaItem.getStartPosition()); + if (media2MediaItem.getStartPosition() != androidx.media2.common.MediaItem.POSITION_UNKNOWN) { + exoPlayerMediaItemBuilder.setClipStartPositionMs(media2MediaItem.getStartPosition()); exoPlayerMediaItemBuilder.setClipRelativeToDefaultPosition(true); } - if (androidXMediaItem.getEndPosition() != androidx.media2.common.MediaItem.POSITION_UNKNOWN) { - exoPlayerMediaItemBuilder.setClipEndPositionMs(androidXMediaItem.getEndPosition()); + if (media2MediaItem.getEndPosition() != androidx.media2.common.MediaItem.POSITION_UNKNOWN) { + exoPlayerMediaItemBuilder.setClipEndPositionMs(media2MediaItem.getEndPosition()); exoPlayerMediaItemBuilder.setClipRelativeToDefaultPosition(true); } @@ -77,7 +77,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { } @Override - public androidx.media2.common.MediaItem convertToAndroidXMediaItem(MediaItem exoPlayerMediaItem) { + public androidx.media2.common.MediaItem convertToMedia2MediaItem(MediaItem exoPlayerMediaItem) { Assertions.checkNotNull(exoPlayerMediaItem); MediaItem.PlaybackProperties playbackProperties = Assertions.checkNotNull(exoPlayerMediaItem.playbackProperties); diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/MediaItemConverter.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/MediaItemConverter.java index 0d1205ccc5..bfa635699e 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/MediaItemConverter.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/MediaItemConverter.java @@ -19,19 +19,19 @@ package com.google.android.exoplayer2.ext.media2; import com.google.android.exoplayer2.MediaItem; /** - * Converter for between {@link MediaItem AndroidX MediaItem} and {@link + * Converter between {@link MediaItem Media2 MediaItem} and {@link * com.google.android.exoplayer2.MediaItem ExoPlayer MediaItem}. */ public interface MediaItemConverter { /** - * Converts {@link androidx.media2.common.MediaItem AndroidX MediaItem} to {@link MediaItem + * Converts {@link androidx.media2.common.MediaItem Media2 MediaItem} to {@link MediaItem * ExoPlayer MediaItem}. */ - MediaItem convertToExoPlayerMediaItem(androidx.media2.common.MediaItem androidXMediaItem); + MediaItem convertToExoPlayerMediaItem(androidx.media2.common.MediaItem media2MediaItem); /** * Converts {@link MediaItem ExoPlayer MediaItem} to {@link androidx.media2.common.MediaItem - * AndroidX MediaItem}. + * Media2 MediaItem}. */ - androidx.media2.common.MediaItem convertToAndroidXMediaItem(MediaItem exoPlayerMediaItem); + androidx.media2.common.MediaItem convertToMedia2MediaItem(MediaItem exoPlayerMediaItem); } diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java index 503a9f7832..fd5163b76e 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java @@ -56,30 +56,30 @@ import java.util.List; void onPlayerStateChanged(/* @SessionPlayer.PlayerState */ int playerState); /** Called when the player is prepared. */ - void onPrepared(androidx.media2.common.MediaItem androidXMediaItem, int bufferingPercentage); + void onPrepared(androidx.media2.common.MediaItem media2MediaItem, int bufferingPercentage); /** Called when a seek request has completed. */ void onSeekCompleted(); /** Called when the player rebuffers. */ - void onBufferingStarted(androidx.media2.common.MediaItem androidXMediaItem); + void onBufferingStarted(androidx.media2.common.MediaItem media2MediaItem); /** Called when the player becomes ready again after rebuffering. */ void onBufferingEnded( - androidx.media2.common.MediaItem androidXMediaItem, int bufferingPercentage); + androidx.media2.common.MediaItem media2MediaItem, int bufferingPercentage); /** Called periodically with the player's buffered position as a percentage. */ void onBufferingUpdate( - androidx.media2.common.MediaItem androidXMediaItem, int bufferingPercentage); + androidx.media2.common.MediaItem media2MediaItem, int bufferingPercentage); /** Called when current media item is changed. */ - void onCurrentMediaItemChanged(androidx.media2.common.MediaItem androidXMediaItem); + void onCurrentMediaItemChanged(androidx.media2.common.MediaItem media2MediaItem); /** Called when playback of the item list has ended. */ void onPlaybackEnded(); /** Called when the player encounters an error. */ - void onError(@Nullable androidx.media2.common.MediaItem androidXMediaItem); + void onError(@Nullable androidx.media2.common.MediaItem media2MediaItem); /** Called when the playlist is changed. */ void onPlaylistChanged(); @@ -111,7 +111,7 @@ import java.util.List; @Nullable private MediaMetadata playlistMetadata; // These should be only updated in TimelineChanges. - private final List androidXPlaylist; + private final List media2Playlist; private final List exoPlayerPlaylist; private boolean prepared; @@ -147,7 +147,7 @@ import java.util.List; handler = new PlayerHandler(player.getApplicationLooper()); pollBufferRunnable = new PollBufferRunnable(); - androidXPlaylist = new ArrayList<>(); + media2Playlist = new ArrayList<>(); exoPlayerPlaylist = new ArrayList<>(); currentWindowIndex = C.INDEX_UNSET; @@ -157,25 +157,24 @@ import java.util.List; updatePlaylist(player.getCurrentTimeline()); } - public boolean setMediaItem(androidx.media2.common.MediaItem androidXMediaItem) { - return setPlaylist(Collections.singletonList(androidXMediaItem), /* metadata= */ null); + public boolean setMediaItem(androidx.media2.common.MediaItem media2MediaItem) { + return setPlaylist(Collections.singletonList(media2MediaItem), /* metadata= */ null); } public boolean setPlaylist( List playlist, @Nullable MediaMetadata metadata) { // Check for duplication. for (int i = 0; i < playlist.size(); i++) { - androidx.media2.common.MediaItem androidXMediaItem = playlist.get(i); - Assertions.checkArgument(playlist.indexOf(androidXMediaItem) == i); + androidx.media2.common.MediaItem media2MediaItem = playlist.get(i); + Assertions.checkArgument(playlist.indexOf(media2MediaItem) == i); } this.playlistMetadata = metadata; List exoPlayerMediaItems = new ArrayList<>(); for (int i = 0; i < playlist.size(); i++) { - androidx.media2.common.MediaItem androidXMediaItem = playlist.get(i); + androidx.media2.common.MediaItem media2MediaItem = playlist.get(i); MediaItem exoPlayerMediaItem = - Assertions.checkNotNull( - mediaItemConverter.convertToExoPlayerMediaItem(androidXMediaItem)); + Assertions.checkNotNull(mediaItemConverter.convertToExoPlayerMediaItem(media2MediaItem)); exoPlayerMediaItems.add(exoPlayerMediaItem); } @@ -185,12 +184,12 @@ import java.util.List; return true; } - public boolean addPlaylistItem(int index, androidx.media2.common.MediaItem androidXMediaItem) { - Assertions.checkArgument(!androidXPlaylist.contains(androidXMediaItem)); - index = Util.constrainValue(index, 0, androidXPlaylist.size()); + public boolean addPlaylistItem(int index, androidx.media2.common.MediaItem media2MediaItem) { + Assertions.checkArgument(!media2Playlist.contains(media2MediaItem)); + index = Util.constrainValue(index, 0, media2Playlist.size()); MediaItem exoPlayerMediaItem = - Assertions.checkNotNull(mediaItemConverter.convertToExoPlayerMediaItem(androidXMediaItem)); + Assertions.checkNotNull(mediaItemConverter.convertToExoPlayerMediaItem(media2MediaItem)); player.addMediaItem(index, exoPlayerMediaItem); return true; } @@ -200,13 +199,12 @@ import java.util.List; return true; } - public boolean replacePlaylistItem( - int index, androidx.media2.common.MediaItem androidXMediaItem) { - Assertions.checkArgument(!androidXPlaylist.contains(androidXMediaItem)); - index = Util.constrainValue(index, 0, androidXPlaylist.size()); + public boolean replacePlaylistItem(int index, androidx.media2.common.MediaItem media2MediaItem) { + Assertions.checkArgument(!media2Playlist.contains(media2MediaItem)); + index = Util.constrainValue(index, 0, media2Playlist.size()); MediaItem exoPlayerMediaItemToAdd = - Assertions.checkNotNull(mediaItemConverter.convertToExoPlayerMediaItem(androidXMediaItem)); + Assertions.checkNotNull(mediaItemConverter.convertToExoPlayerMediaItem(media2MediaItem)); ignoreTimelineUpdates = true; player.removeMediaItem(index); @@ -266,7 +264,7 @@ import java.util.List; @Nullable public List getPlaylist() { - return new ArrayList<>(androidXPlaylist); + return new ArrayList<>(media2Playlist); } @Nullable @@ -283,7 +281,7 @@ import java.util.List; } public int getCurrentMediaItemIndex() { - return androidXPlaylist.isEmpty() ? C.INDEX_UNSET : player.getCurrentWindowIndex(); + return media2Playlist.isEmpty() ? C.INDEX_UNSET : player.getCurrentWindowIndex(); } public int getPreviousMediaItemIndex() { @@ -297,7 +295,7 @@ import java.util.List; @Nullable public androidx.media2.common.MediaItem getCurrentMediaItem() { int index = getCurrentMediaItemIndex(); - return (index != C.INDEX_UNSET) ? androidXPlaylist.get(index) : null; + return (index != C.INDEX_UNSET) ? media2Playlist.get(index) : null; } public boolean prepare() { @@ -522,9 +520,9 @@ import java.util.List; } private void updatePlaylist(Timeline timeline) { - List androidXMediaItemToBeRemoved = - new ArrayList<>(androidXPlaylist); - androidXPlaylist.clear(); + List media2MediaItemToBeRemoved = + new ArrayList<>(media2Playlist); + media2Playlist.clear(); exoPlayerPlaylist.clear(); Timeline.Window window = new Timeline.Window(); @@ -532,15 +530,14 @@ import java.util.List; for (int i = 0; i < windowCount; i++) { timeline.getWindow(i, window); MediaItem exoPlayerMediaItem = window.mediaItem; - androidx.media2.common.MediaItem androidXMediaItem = - Assertions.checkNotNull( - mediaItemConverter.convertToAndroidXMediaItem(exoPlayerMediaItem)); + androidx.media2.common.MediaItem media2MediaItem = + Assertions.checkNotNull(mediaItemConverter.convertToMedia2MediaItem(exoPlayerMediaItem)); exoPlayerPlaylist.add(exoPlayerMediaItem); - androidXPlaylist.add(androidXMediaItem); - androidXMediaItemToBeRemoved.remove(androidXMediaItem); + media2Playlist.add(media2MediaItem); + media2MediaItemToBeRemoved.remove(media2MediaItem); } - for (androidx.media2.common.MediaItem item : androidXMediaItemToBeRemoved) { + for (androidx.media2.common.MediaItem item : media2MediaItemToBeRemoved) { releaseMediaItem(item); } } @@ -550,35 +547,35 @@ import java.util.List; } private void updateBufferingAndScheduleNextPollBuffer() { - androidx.media2.common.MediaItem androidXMediaItem = + androidx.media2.common.MediaItem media2MediaItem = Assertions.checkNotNull(getCurrentMediaItem()); - listener.onBufferingUpdate(androidXMediaItem, player.getBufferedPercentage()); + listener.onBufferingUpdate(media2MediaItem, player.getBufferedPercentage()); handler.removeCallbacks(pollBufferRunnable); handler.postDelayed(pollBufferRunnable, POLL_BUFFER_INTERVAL_MS); } private void maybeNotifyBufferingEvents() { - androidx.media2.common.MediaItem androidXMediaItem = + androidx.media2.common.MediaItem media2MediaItem = Assertions.checkNotNull(getCurrentMediaItem()); if (prepared && !rebuffering) { rebuffering = true; - listener.onBufferingStarted(androidXMediaItem); + listener.onBufferingStarted(media2MediaItem); } } private void maybeNotifyReadyEvents() { - androidx.media2.common.MediaItem androidXMediaItem = + androidx.media2.common.MediaItem media2MediaItem = Assertions.checkNotNull(getCurrentMediaItem()); boolean prepareComplete = !prepared; if (prepareComplete) { prepared = true; handlePositionDiscontinuity(Player.DISCONTINUITY_REASON_PERIOD_TRANSITION); listener.onPlayerStateChanged(SessionPlayer.PLAYER_STATE_PAUSED); - listener.onPrepared(androidXMediaItem, player.getBufferedPercentage()); + listener.onPrepared(media2MediaItem, player.getBufferedPercentage()); } if (rebuffering) { rebuffering = false; - listener.onBufferingEnded(androidXMediaItem, player.getBufferedPercentage()); + listener.onBufferingEnded(media2MediaItem, player.getBufferedPercentage()); } } @@ -590,13 +587,13 @@ import java.util.List; } } - private void releaseMediaItem(androidx.media2.common.MediaItem androidXMediaItem) { + private void releaseMediaItem(androidx.media2.common.MediaItem media2MediaItem) { try { - if (androidXMediaItem instanceof CallbackMediaItem) { - ((CallbackMediaItem) androidXMediaItem).getDataSourceCallback().close(); + if (media2MediaItem instanceof CallbackMediaItem) { + ((CallbackMediaItem) media2MediaItem).getDataSourceCallback().close(); } } catch (IOException e) { - Log.w(TAG, "Error releasing media item " + androidXMediaItem, e); + Log.w(TAG, "Error releasing media item " + media2MediaItem, e); } }