mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
CompositionPlayer: clip silence with media source
PiperOrigin-RevId: 653667116
This commit is contained in:
parent
3c9332bb48
commit
1e28755b4a
@ -56,9 +56,11 @@ import androidx.media3.exoplayer.RendererCapabilities;
|
|||||||
import androidx.media3.exoplayer.audio.AudioSink;
|
import androidx.media3.exoplayer.audio.AudioSink;
|
||||||
import androidx.media3.exoplayer.audio.DefaultAudioSink;
|
import androidx.media3.exoplayer.audio.DefaultAudioSink;
|
||||||
import androidx.media3.exoplayer.image.ImageDecoder;
|
import androidx.media3.exoplayer.image.ImageDecoder;
|
||||||
|
import androidx.media3.exoplayer.source.ClippingMediaSource;
|
||||||
import androidx.media3.exoplayer.source.ConcatenatingMediaSource2;
|
import androidx.media3.exoplayer.source.ConcatenatingMediaSource2;
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
||||||
import androidx.media3.exoplayer.source.ExternalLoader;
|
import androidx.media3.exoplayer.source.ExternalLoader;
|
||||||
|
import androidx.media3.exoplayer.source.MediaSource;
|
||||||
import androidx.media3.exoplayer.source.MergingMediaSource;
|
import androidx.media3.exoplayer.source.MergingMediaSource;
|
||||||
import androidx.media3.exoplayer.source.SilenceMediaSource;
|
import androidx.media3.exoplayer.source.SilenceMediaSource;
|
||||||
import androidx.media3.exoplayer.source.TrackGroupArray;
|
import androidx.media3.exoplayer.source.TrackGroupArray;
|
||||||
@ -705,6 +707,11 @@ public final class CompositionPlayer extends SimpleBasePlayer
|
|||||||
if (externalImageLoader != null) {
|
if (externalImageLoader != null) {
|
||||||
defaultMediaSourceFactory.setExternalImageLoader(externalImageLoader);
|
defaultMediaSourceFactory.setExternalImageLoader(externalImageLoader);
|
||||||
}
|
}
|
||||||
|
MediaSource silenceMediaSource =
|
||||||
|
new ClippingMediaSource(
|
||||||
|
new SilenceMediaSource(editedMediaItem.durationUs),
|
||||||
|
editedMediaItem.mediaItem.clippingConfiguration.startPositionUs,
|
||||||
|
editedMediaItem.mediaItem.clippingConfiguration.endPositionUs);
|
||||||
mediaSourceBuilder.add(
|
mediaSourceBuilder.add(
|
||||||
new MergingMediaSource(
|
new MergingMediaSource(
|
||||||
defaultMediaSourceFactory.createMediaSource(editedMediaItem.mediaItem),
|
defaultMediaSourceFactory.createMediaSource(editedMediaItem.mediaItem),
|
||||||
@ -712,7 +719,7 @@ public final class CompositionPlayer extends SimpleBasePlayer
|
|||||||
// media track starts at the clipped position. For example, if a video is 1000ms
|
// media track starts at the clipped position. For example, if a video is 1000ms
|
||||||
// long and clipped 900ms from the start, its MediaSource will be enabled at 900ms
|
// long and clipped 900ms from the start, its MediaSource will be enabled at 900ms
|
||||||
// during track selection, rather than at 0ms.
|
// during track selection, rather than at 0ms.
|
||||||
new SilenceMediaSource(editedMediaItem.durationUs)),
|
silenceMediaSource),
|
||||||
/* initialPlaceholderDurationMs= */ usToMs(durationUs));
|
/* initialPlaceholderDurationMs= */ usToMs(durationUs));
|
||||||
} else {
|
} else {
|
||||||
mediaSourceBuilder.add(
|
mediaSourceBuilder.add(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user