From 12f34c337ec8f08af465246919061c0beaf586df Mon Sep 17 00:00:00 2001 From: shahddaghash Date: Wed, 9 Oct 2024 02:12:17 -0700 Subject: [PATCH] Connect `produceFragmentedMp4CheckBox` to `useMedia3Muxer` Connected `produceFragmentedMp4CheckBox` to `useMedia3Muxer` checkbox since producing fragmented MP4 is contingent on using Media3 Muxer. 1. If both were unchecked, `useMedia3Muxer` gets checked when `produceFragmentedMp4CheckBox` is checked. 2. If both were checked, `produceFragmentedMp4CheckBox` gets unchecked when `useMedia3Muxer` is unchecked. PiperOrigin-RevId: 683948863 --- .../demo/transformer/ConfigurationActivity.java | 12 ++++++++++++ .../demo/transformer/TransformerActivity.java | 13 +++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java index 4d41a588a5..aab9821902 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java @@ -302,6 +302,18 @@ public final class ConfigurationActivity extends AppCompatActivity { abortSlowExportCheckBox = findViewById(R.id.abort_slow_export_checkbox); useMedia3Muxer = findViewById(R.id.use_media3_muxer_checkbox); produceFragmentedMp4CheckBox = findViewById(R.id.produce_fragmented_mp4_checkbox); + useMedia3Muxer.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + if (!isChecked) { + produceFragmentedMp4CheckBox.setChecked(false); + } + }); + produceFragmentedMp4CheckBox.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + if (isChecked) { + useMedia3Muxer.setChecked(true); + } + }); ArrayAdapter hdrModeAdapter = new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item); diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java index a006971fc3..95f2f94849 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java @@ -84,10 +84,8 @@ import androidx.media3.exoplayer.DefaultLoadControl; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.audio.SilenceSkippingAudioProcessor; import androidx.media3.exoplayer.util.DebugTextViewHelper; -import androidx.media3.muxer.Muxer; import androidx.media3.transformer.Composition; import androidx.media3.transformer.DefaultEncoderFactory; -import androidx.media3.transformer.DefaultMuxer; import androidx.media3.transformer.EditedMediaItem; import androidx.media3.transformer.EditedMediaItemSequence; import androidx.media3.transformer.Effects; @@ -325,14 +323,13 @@ public final class TransformerActivity extends AppCompatActivity { transformerBuilder.setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET); } - Muxer.Factory muxerFactory = new DefaultMuxer.Factory(); if (bundle.getBoolean(ConfigurationActivity.USE_MEDIA3_MUXER)) { - muxerFactory = new InAppMuxer.Factory.Builder().build(); + transformerBuilder.setMuxerFactory( + new InAppMuxer.Factory.Builder() + .setOutputFragmentedMp4( + bundle.getBoolean(ConfigurationActivity.PRODUCE_FRAGMENTED_MP4)) + .build()); } - if (bundle.getBoolean(ConfigurationActivity.PRODUCE_FRAGMENTED_MP4)) { - muxerFactory = new InAppMuxer.Factory.Builder().setOutputFragmentedMp4(true).build(); - } - transformerBuilder.setMuxerFactory(muxerFactory); if (bundle.getBoolean(ConfigurationActivity.ENABLE_DEBUG_PREVIEW)) { transformerBuilder.setDebugViewProvider(new DemoDebugViewProvider());