Fix video playback after editing clip boundaries.
This commit is contained in:
parent
915d56ac15
commit
12ec0ca84c
1 changed files with 12 additions and 7 deletions
|
@ -30,6 +30,9 @@ import com.google.android.exoplayer2.MediaItem;
|
|||
import com.google.android.exoplayer2.PlaybackException;
|
||||
import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.source.ClippingMediaSource;
|
||||
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
|
||||
import com.google.android.exoplayer2.ui.PlayerControlView;
|
||||
import com.google.android.exoplayer2.ui.PlayerView;
|
||||
|
@ -47,8 +50,9 @@ public class VideoPlayer extends FrameLayout {
|
|||
@SuppressWarnings("unused")
|
||||
private static final String TAG = Log.tag(VideoPlayer.class);
|
||||
|
||||
private final PlayerView exoView;
|
||||
private final PlayerControlView exoControls;
|
||||
private final PlayerView exoView;
|
||||
private final PlayerControlView exoControls;
|
||||
private final DefaultMediaSourceFactory mediaSourceFactory;
|
||||
|
||||
private SimpleExoPlayer exoPlayer;
|
||||
private Window window;
|
||||
|
@ -73,6 +77,8 @@ public class VideoPlayer extends FrameLayout {
|
|||
|
||||
inflate(context, R.layout.video_player, this);
|
||||
|
||||
this.mediaSourceFactory = new DefaultMediaSourceFactory(context);
|
||||
|
||||
this.exoView = findViewById(R.id.video_view);
|
||||
this.exoControls = new PlayerControlView(getContext());
|
||||
this.exoControls.setShowTimeoutMs(-1);
|
||||
|
@ -213,11 +219,10 @@ public class VideoPlayer extends FrameLayout {
|
|||
|
||||
public void clip(long fromUs, long toUs, boolean playWhenReady) {
|
||||
if (this.exoPlayer != null && mediaItem != null) {
|
||||
MediaItem clippedMediaItem = mediaItem.buildUpon()
|
||||
.setClipStartPositionMs(TimeUnit.MICROSECONDS.toMillis(fromUs))
|
||||
.setClipEndPositionMs(TimeUnit.MICROSECONDS.toMillis(toUs))
|
||||
.build();
|
||||
exoPlayer.setMediaItem(clippedMediaItem);
|
||||
MediaSource mediaItemSource = mediaSourceFactory.createMediaSource(mediaItem);
|
||||
ClippingMediaSource clippedSource = new ClippingMediaSource(mediaItemSource, fromUs, toUs);
|
||||
|
||||
exoPlayer.setMediaSource(clippedSource);
|
||||
exoPlayer.prepare();
|
||||
exoPlayer.setPlayWhenReady(playWhenReady);
|
||||
clipped = true;
|
||||
|
|
Loading…
Add table
Reference in a new issue