Last active
December 8, 2022 12:22
-
-
Save kotoMJ/8ca336606a9caa19e67b8eb75d8d7b8f to your computer and use it in GitHub Desktop.
ExoPlayer skipping silence
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private class AudioOnlyRenderersFactory(private val context: Context) : RenderersFactory { | |
override fun createRenderers( | |
eventHandler: Handler, | |
videoRendererEventListener: VideoRendererEventListener, | |
audioRendererEventListener: AudioRendererEventListener, | |
textRendererOutput: TextOutput, | |
metadataRendererOutput: MetadataOutput | |
): Array<Renderer> { | |
return arrayOf( | |
MediaCodecAudioRenderer( | |
context, | |
MediaCodecSelector.DEFAULT, | |
eventHandler, | |
audioRendererEventListener, | |
AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES, | |
SilenceSkippingAudioProcessor( | |
150_000,//150ms 150_000 | |
20_000,//20ms 20_000 | |
1024 //1024 PCM | |
) | |
) | |
) | |
} | |
} | |
private val bufferMs = 30000 //Use the same buffer for min/max to reduce rebuffering metrics. | |
private val loadControl: DefaultLoadControl = DefaultLoadControl.Builder().setBufferDurationsMs(bufferMs, bufferMs, bufferMs / 2, bufferMs / 2).build() | |
private val player = ExoPlayer.Builder(context, AudioOnlyRenderersFactory(context)) | |
.setLoadControl(loadControl) | |
.build() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment