mirror of
https://github.com/samsonjs/media.git
synced 2026-03-28 09:55:48 +00:00
Add buildUpon() and setMediaItem() method in EditedMediaItem
For pause/resume feature we need to build upon original EditedMediaItem and set a modified MediaItem to it. PiperOrigin-RevId: 559484129
This commit is contained in:
parent
e2ee8ae1b0
commit
5276f797e5
1 changed files with 28 additions and 2 deletions
|
|
@ -33,8 +33,7 @@ public final class EditedMediaItem {
|
|||
/** A builder for {@link EditedMediaItem} instances. */
|
||||
public static final class Builder {
|
||||
|
||||
private final MediaItem mediaItem;
|
||||
|
||||
private MediaItem mediaItem;
|
||||
private boolean removeAudio;
|
||||
private boolean removeVideo;
|
||||
private boolean flattenForSlowMotion;
|
||||
|
|
@ -57,6 +56,16 @@ public final class EditedMediaItem {
|
|||
effects = Effects.EMPTY;
|
||||
}
|
||||
|
||||
private Builder(EditedMediaItem editedMediaItem) {
|
||||
this.mediaItem = editedMediaItem.mediaItem;
|
||||
this.removeAudio = editedMediaItem.removeAudio;
|
||||
this.removeVideo = editedMediaItem.removeVideo;
|
||||
this.flattenForSlowMotion = editedMediaItem.flattenForSlowMotion;
|
||||
this.durationUs = editedMediaItem.durationUs;
|
||||
this.frameRate = editedMediaItem.frameRate;
|
||||
this.effects = editedMediaItem.effects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether to remove the audio from the {@link MediaItem}.
|
||||
*
|
||||
|
|
@ -182,6 +191,18 @@ public final class EditedMediaItem {
|
|||
frameRate,
|
||||
effects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link MediaItem} on which transformations are applied.
|
||||
*
|
||||
* @param mediaItem The {@link MediaItem}.
|
||||
* @return This builder.
|
||||
*/
|
||||
@CanIgnoreReturnValue
|
||||
/* package */ Builder setMediaItem(MediaItem mediaItem) {
|
||||
this.mediaItem = mediaItem;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/** The {@link MediaItem} on which transformations are applied. */
|
||||
|
|
@ -239,4 +260,9 @@ public final class EditedMediaItem {
|
|||
this.frameRate = frameRate;
|
||||
this.effects = effects;
|
||||
}
|
||||
|
||||
/** Returns a {@link Builder} initialized with the values of this instance. */
|
||||
/* package */ Builder buildUpon() {
|
||||
return new Builder(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue