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 470ec5f18b..4d41a588a5 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
@@ -77,6 +77,7 @@ public final class ConfigurationActivity extends AppCompatActivity {
public static final String ENABLE_ANALYZER_MODE = "enable_analyzer_mode";
public static final String ENABLE_DEBUG_PREVIEW = "enable_debug_preview";
public static final String ABORT_SLOW_EXPORT = "abort_slow_export";
+ public static final String USE_MEDIA3_MUXER = "use_media3_muxer";
public static final String PRODUCE_FRAGMENTED_MP4 = "produce_fragmented_mp4";
public static final String HDR_MODE = "hdr_mode";
public static final String AUDIO_EFFECTS_SELECTIONS = "audio_effects_selections";
@@ -172,6 +173,7 @@ public final class ConfigurationActivity extends AppCompatActivity {
private CheckBox enableDebugPreviewCheckBox;
private CheckBox enableDebugTracingCheckBox;
private CheckBox abortSlowExportCheckBox;
+ private CheckBox useMedia3Muxer;
private CheckBox produceFragmentedMp4CheckBox;
private Spinner hdrModeSpinner;
private Button selectAudioEffectsButton;
@@ -298,6 +300,7 @@ public final class ConfigurationActivity extends AppCompatActivity {
(buttonView, isChecked) -> DebugTraceUtil.enableTracing = isChecked);
abortSlowExportCheckBox = findViewById(R.id.abort_slow_export_checkbox);
+ useMedia3Muxer = findViewById(R.id.use_media3_muxer_checkbox);
produceFragmentedMp4CheckBox = findViewById(R.id.produce_fragmented_mp4_checkbox);
ArrayAdapter hdrModeAdapter =
@@ -389,6 +392,7 @@ public final class ConfigurationActivity extends AppCompatActivity {
bundle.putBoolean(ENABLE_ANALYZER_MODE, enableAnalyzerModeCheckBox.isChecked());
bundle.putBoolean(ENABLE_DEBUG_PREVIEW, enableDebugPreviewCheckBox.isChecked());
bundle.putBoolean(ABORT_SLOW_EXPORT, abortSlowExportCheckBox.isChecked());
+ bundle.putBoolean(USE_MEDIA3_MUXER, useMedia3Muxer.isChecked());
bundle.putBoolean(PRODUCE_FRAGMENTED_MP4, produceFragmentedMp4CheckBox.isChecked());
String selectedHdrMode = String.valueOf(hdrModeSpinner.getSelectedItem());
bundle.putInt(HDR_MODE, HDR_MODE_DESCRIPTIONS.get(selectedHdrMode));
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 e27fa22351..963f08c892 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
@@ -318,6 +318,9 @@ public final class TransformerActivity extends AppCompatActivity {
}
Muxer.Factory muxerFactory = new DefaultMuxer.Factory();
+ if (bundle.getBoolean(ConfigurationActivity.USE_MEDIA3_MUXER)) {
+ muxerFactory = new InAppMuxer.Factory.Builder().build();
+ }
if (bundle.getBoolean(ConfigurationActivity.PRODUCE_FRAGMENTED_MP4)) {
muxerFactory = new InAppMuxer.Factory.Builder().setOutputFragmentedMp4(true).build();
}
diff --git a/demos/transformer/src/main/res/layout/configuration_activity.xml b/demos/transformer/src/main/res/layout/configuration_activity.xml
index e69403202b..bc2997b184 100644
--- a/demos/transformer/src/main/res/layout/configuration_activity.xml
+++ b/demos/transformer/src/main/res/layout/configuration_activity.xml
@@ -235,6 +235,15 @@
android:id="@+id/abort_slow_export_checkbox"
android:layout_gravity="end"/>
+
+
+
+
Enable debug preview
Enable debug tracing
Abort slow export
+ Use Media3 muxer
Produce fragmented MP4
Trim
HDR mode