mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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. */
|
/** A builder for {@link EditedMediaItem} instances. */
|
||||||
public static final class Builder {
|
public static final class Builder {
|
||||||
|
|
||||||
private final MediaItem mediaItem;
|
private MediaItem mediaItem;
|
||||||
|
|
||||||
private boolean removeAudio;
|
private boolean removeAudio;
|
||||||
private boolean removeVideo;
|
private boolean removeVideo;
|
||||||
private boolean flattenForSlowMotion;
|
private boolean flattenForSlowMotion;
|
||||||
|
|
@ -57,6 +56,16 @@ public final class EditedMediaItem {
|
||||||
effects = Effects.EMPTY;
|
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}.
|
* Sets whether to remove the audio from the {@link MediaItem}.
|
||||||
*
|
*
|
||||||
|
|
@ -182,6 +191,18 @@ public final class EditedMediaItem {
|
||||||
frameRate,
|
frameRate,
|
||||||
effects);
|
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. */
|
/** The {@link MediaItem} on which transformations are applied. */
|
||||||
|
|
@ -239,4 +260,9 @@ public final class EditedMediaItem {
|
||||||
this.frameRate = frameRate;
|
this.frameRate = frameRate;
|
||||||
this.effects = effects;
|
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