Search in sources :

Example 91 with Player

use of com.google.android.exoplayer2.Player in project ExoPlayer by google.

the class PlayerControlView method dispatchPlay.

private void dispatchPlay(Player player) {
    @State int state = player.getPlaybackState();
    if (state == Player.STATE_IDLE) {
        player.prepare();
    } else if (state == Player.STATE_ENDED) {
        seekTo(player, player.getCurrentMediaItemIndex(), C.TIME_UNSET);
    }
    player.play();
}
Also used : State(com.google.android.exoplayer2.Player.State) SuppressLint(android.annotation.SuppressLint)

Example 92 with Player

use of com.google.android.exoplayer2.Player in project ExoPlayer by google.

the class DefaultMediaDescriptionAdapterTest method getters_returnMediaMetadataValues.

@Test
public void getters_returnMediaMetadataValues() {
    Context context = ApplicationProvider.getApplicationContext();
    Player player = mock(Player.class);
    MediaMetadata mediaMetadata = new MediaMetadata.Builder().setDisplayTitle("display title").setArtist("artist").build();
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
    DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent);
    when(player.getMediaMetadata()).thenReturn(mediaMetadata);
    assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);
    assertThat(adapter.getCurrentContentTitle(player).toString()).isEqualTo(mediaMetadata.displayTitle.toString());
    assertThat(adapter.getCurrentContentText(player).toString()).isEqualTo(mediaMetadata.artist.toString());
}
Also used : Context(android.content.Context) Player(com.google.android.exoplayer2.Player) MediaMetadata(com.google.android.exoplayer2.MediaMetadata) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) PendingIntent(android.app.PendingIntent) Test(org.junit.Test)

Example 93 with Player

use of com.google.android.exoplayer2.Player in project ExoPlayer by google.

the class TestPlayerRunHelper method runUntilSleepingForOffload.

/**
 * Runs tasks of the main {@link Looper} until {@link
 * ExoPlayer.AudioOffloadListener#onExperimentalSleepingForOffloadChanged(boolean)} is called or a
 * playback error occurs.
 *
 * <p>If a playback error occurs it will be thrown wrapped in an {@link IllegalStateException}.
 *
 * @param player The {@link Player}.
 * @param expectedSleepForOffload The expected sleep of offload state.
 * @throws TimeoutException If the {@link RobolectricUtil#DEFAULT_TIMEOUT_MS default timeout} is
 *     exceeded.
 */
public static void runUntilSleepingForOffload(ExoPlayer player, boolean expectedSleepForOffload) throws TimeoutException {
    verifyMainTestThread(player);
    AtomicBoolean receiverCallback = new AtomicBoolean(false);
    ExoPlayer.AudioOffloadListener listener = new ExoPlayer.AudioOffloadListener() {

        @Override
        public void onExperimentalSleepingForOffloadChanged(boolean sleepingForOffload) {
            if (sleepingForOffload == expectedSleepForOffload) {
                receiverCallback.set(true);
            }
        }
    };
    player.addAudioOffloadListener(listener);
    runMainLooperUntil(() -> receiverCallback.get() || player.getPlayerError() != null);
    if (player.getPlayerError() != null) {
        throw new IllegalStateException(player.getPlayerError());
    }
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ExoPlayer(com.google.android.exoplayer2.ExoPlayer)

Example 94 with Player

use of com.google.android.exoplayer2.Player in project ExoPlayer by google.

the class TestPlayerRunHelper method runUntilRenderedFirstFrame.

/**
 * Runs tasks of the main {@link Looper} until the {@link Player.Listener#onRenderedFirstFrame}
 * callback is called or a playback error occurs.
 *
 * <p>If a playback error occurs it will be thrown wrapped in an {@link IllegalStateException}..
 *
 * @param player The {@link Player}.
 * @throws TimeoutException If the {@link RobolectricUtil#DEFAULT_TIMEOUT_MS default timeout} is
 *     exceeded.
 */
public static void runUntilRenderedFirstFrame(ExoPlayer player) throws TimeoutException {
    verifyMainTestThread(player);
    AtomicBoolean receivedCallback = new AtomicBoolean(false);
    Player.Listener listener = new Player.Listener() {

        @Override
        public void onRenderedFirstFrame() {
            receivedCallback.set(true);
        }
    };
    player.addListener(listener);
    runMainLooperUntil(() -> receivedCallback.get() || player.getPlayerError() != null);
    player.removeListener(listener);
    if (player.getPlayerError() != null) {
        throw new IllegalStateException(player.getPlayerError());
    }
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Player(com.google.android.exoplayer2.Player) ExoPlayer(com.google.android.exoplayer2.ExoPlayer)

Example 95 with Player

use of com.google.android.exoplayer2.Player in project ExoPlayer by google.

the class ExoPlayerTest method playerIdle_withSetPlaybackSpeed_usesPlaybackParameterSpeedWithPitchUnchanged.

@Test
public void playerIdle_withSetPlaybackSpeed_usesPlaybackParameterSpeedWithPitchUnchanged() {
    ExoPlayer player = new TestExoPlayerBuilder(context).build();
    player.setPlaybackParameters(new PlaybackParameters(/* speed= */
    1, /* pitch= */
    2));
    Player.Listener mockListener = mock(Player.Listener.class);
    player.addListener(mockListener);
    player.prepare();
    player.setPlaybackSpeed(2);
    verify(mockListener).onPlaybackParametersChanged(new PlaybackParameters(/* speed= */
    2, /* pitch= */
    2));
}
Also used : Listener(com.google.android.exoplayer2.Player.Listener) TestExoPlayerBuilder(com.google.android.exoplayer2.testutil.TestExoPlayerBuilder) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)250 FakeMediaSource (com.google.android.exoplayer2.testutil.FakeMediaSource)185 TestExoPlayerBuilder (com.google.android.exoplayer2.testutil.TestExoPlayerBuilder)174 FakeTimeline (com.google.android.exoplayer2.testutil.FakeTimeline)127 PlayerRunnable (com.google.android.exoplayer2.testutil.ActionSchedule.PlayerRunnable)107 ActionSchedule (com.google.android.exoplayer2.testutil.ActionSchedule)91 SinglePeriodTimeline (com.google.android.exoplayer2.source.SinglePeriodTimeline)89 NoUidTimeline (com.google.android.exoplayer2.testutil.NoUidTimeline)89 Listener (com.google.android.exoplayer2.Player.Listener)85 TimelineWindowDefinition (com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition)72 MediaSource (com.google.android.exoplayer2.source.MediaSource)68 ExoPlayerTestRunner (com.google.android.exoplayer2.testutil.ExoPlayerTestRunner)67 ConcatenatingMediaSource (com.google.android.exoplayer2.source.ConcatenatingMediaSource)66 Nullable (androidx.annotation.Nullable)56 ClippingMediaSource (com.google.android.exoplayer2.source.ClippingMediaSource)49 CompositeMediaSource (com.google.android.exoplayer2.source.CompositeMediaSource)49 MaskingMediaSource (com.google.android.exoplayer2.source.MaskingMediaSource)49 ServerSideAdInsertionMediaSource (com.google.android.exoplayer2.source.ads.ServerSideAdInsertionMediaSource)49 FakeAdaptiveMediaSource (com.google.android.exoplayer2.testutil.FakeAdaptiveMediaSource)49 ExoPlayer (com.google.android.exoplayer2.ExoPlayer)47