Class Composition.Builder

    • Constructor Detail

      • Builder

        public Builder​(List<EditedMediaItemSequence> sequences)
        Creates an instance.
        Parameters:
        sequences - The EditedMediaItemSequence instances to compose. MediaItem instances from different sequences that are overlapping in time will be mixed in the output. This list must not be empty.
    • Method Detail

      • experimentalSetForceAudioTrack

        @CanIgnoreReturnValue
        public Composition.Builder experimentalSetForceAudioTrack​(boolean forceAudioTrack)
        Sets whether the output file should always contain an audio track.

        The default value is false.

        • If false:
          • If the Composition export doesn't produce any audio at timestamp 0, but produces audio later on, the export is aborted.
          • If the Composition doesn't produce any audio during the entire export, the output won't contain any audio.
          • If the Composition export produces audio at timestamp 0, the output will contain an audio track.
        • If true, the output will always contain an audio track.
        If the output contains an audio track, silent audio will be generated for the segments where the Composition export doesn't produce any audio.

        The MIME type of the output's audio track can be set using TransformationRequest.Builder.setAudioMimeType(String). The sample rate and channel count can be set by passing relevant AudioProcessor instances to the Composition.

        Forcing an audio track and requesting audio transmuxing are not allowed together because generating silence requires transcoding.

        This method is experimental and may be removed or changed without warning.

        Parameters:
        forceAudioTrack - Whether to force an audio track in the output.
        Returns:
        This builder.
      • setTransmuxAudio

        @CanIgnoreReturnValue
        public Composition.Builder setTransmuxAudio​(boolean transmuxAudio)
        Sets whether to transmux the media items' audio tracks.

        The default value is false.

        If the Composition contains one MediaItem, the value set is ignored. The audio track will only be transcoded if necessary.

        If the input Composition contains multiple media items, all the audio tracks are transcoded by default. They are all transmuxed if transmuxAudio is true. Transmuxed tracks must be compatible (typically, all the MediaItem instances containing the track to transmux are concatenated in a single EditedMediaItemSequence and have the same sample format for that track).

        Requesting audio transmuxing and forcing an audio track are not allowed together because generating silence requires transcoding.

        Parameters:
        transmuxAudio - Whether to transmux the audio tracks.
        Returns:
        This builder.
      • setTransmuxVideo

        @CanIgnoreReturnValue
        public Composition.Builder setTransmuxVideo​(boolean transmuxVideo)
        Sets whether to transmux the media items' video tracks.

        The default value is false.

        If the Composition contains one MediaItem, the value set is ignored. The video track will only be transcoded if necessary.

        If the input Composition contains multiple media items, all the video tracks are transcoded by default. They are all transmuxed if transmuxVideo is true. Transmuxed tracks must be compatible (typically, all the MediaItem instances containing the track to transmux are concatenated in a single EditedMediaItemSequence and have the same sample format for that track).

        Parameters:
        transmuxVideo - Whether to transmux the video tracks.
        Returns:
        This builder.