diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java index b817109c2b..e78a2f1b03 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java @@ -484,6 +484,19 @@ public class DefaultRenderersFactory implements RenderersFactory { extensionRendererIndex--; } + try { + Class clazz = Class.forName("androidx.media3.decoder.midi.MidiRenderer"); + Constructor constructor = clazz.getConstructor(); + Renderer renderer = (Renderer) constructor.newInstance(); + out.add(extensionRendererIndex++, renderer); + Log.i(TAG, "Loaded MidiRenderer."); + } catch (ClassNotFoundException e) { + // Expected if the app was built without the extension. + } catch (Exception e) { + // The extension is present, but instantiation failed. + throw new RuntimeException("Error instantiating MIDI extension", e); + } + try { // Full class names used for constructor args so the LINT rule triggers if any of them move. Class clazz = Class.forName("androidx.media3.decoder.opus.LibopusAudioRenderer");