Add device info to CastPlayer

Issue: androidx/media#142
PiperOrigin-RevId: 468666737
This commit is contained in:
bachinger 2022-08-19 10:45:11 +00:00 committed by Marc Baechinger
parent 4e7f9c575d
commit d6442f63fa
2 changed files with 15 additions and 2 deletions

View File

@ -80,6 +80,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
*/ */
public final class CastPlayer extends BasePlayer { public final class CastPlayer extends BasePlayer {
/** The {@link DeviceInfo} returned by {@link #getDeviceInfo() this player}. */
public static final DeviceInfo DEVICE_INFO =
new DeviceInfo(DeviceInfo.PLAYBACK_TYPE_REMOTE, /* minVolume= */ 0, /* maxVolume= */ 0);
static { static {
ExoPlayerLibraryInfo.registerModule("goog.exo.cast"); ExoPlayerLibraryInfo.registerModule("goog.exo.cast");
} }
@ -727,10 +731,10 @@ public final class CastPlayer extends BasePlayer {
return CueGroup.EMPTY_TIME_ZERO; return CueGroup.EMPTY_TIME_ZERO;
} }
/** This method is not supported and always returns {@link DeviceInfo#UNKNOWN}. */ /** This method always returns {@link CastPlayer#DEVICE_INFO}. */
@Override @Override
public DeviceInfo getDeviceInfo() { public DeviceInfo getDeviceInfo() {
return DeviceInfo.UNKNOWN; return DEVICE_INFO;
} }
/** This method is not supported and always returns {@code 0}. */ /** This method is not supported and always returns {@code 0}. */

View File

@ -63,6 +63,7 @@ import static org.mockito.MockitoAnnotations.initMocks;
import android.net.Uri; import android.net.Uri;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.DeviceInfo;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.MediaMetadata;
import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.PlaybackParameters;
@ -1864,6 +1865,14 @@ public class CastPlayerTest {
verify(mockListener, never()).onMediaMetadataChanged(any()); verify(mockListener, never()).onMediaMetadataChanged(any());
} }
@Test
public void getDeviceInfo_returnsCorrectDeviceInfoWithPlaybackTypeRemote() {
DeviceInfo deviceInfo = castPlayer.getDeviceInfo();
assertThat(deviceInfo).isEqualTo(CastPlayer.DEVICE_INFO);
assertThat(deviceInfo.playbackType).isEqualTo(DeviceInfo.PLAYBACK_TYPE_REMOTE);
}
private int[] createMediaQueueItemIds(int numberOfIds) { private int[] createMediaQueueItemIds(int numberOfIds) {
int[] mediaQueueItemIds = new int[numberOfIds]; int[] mediaQueueItemIds = new int[numberOfIds];
for (int i = 0; i < numberOfIds; i++) { for (int i = 0; i < numberOfIds; i++) {