Class FfmpegAudioRenderer

java.lang.Object
androidx.media3.exoplayer.BaseRenderer
androidx.media3.exoplayer.audio.DecoderAudioRenderer<androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder>
androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer
All Implemented Interfaces:
androidx.media3.exoplayer.MediaClock, androidx.media3.exoplayer.PlayerMessage.Target, androidx.media3.exoplayer.Renderer, androidx.media3.exoplayer.RendererCapabilities

@UnstableApi public final class FfmpegAudioRenderer extends androidx.media3.exoplayer.audio.DecoderAudioRenderer<androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder>
Decodes and renders audio using FFmpeg.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface androidx.media3.exoplayer.Renderer

    androidx.media3.exoplayer.Renderer.MessageType, androidx.media3.exoplayer.Renderer.State, androidx.media3.exoplayer.Renderer.WakeupListener

    Nested classes/interfaces inherited from interface androidx.media3.exoplayer.RendererCapabilities

    androidx.media3.exoplayer.RendererCapabilities.AdaptiveSupport, androidx.media3.exoplayer.RendererCapabilities.AudioOffloadSupport, androidx.media3.exoplayer.RendererCapabilities.Capabilities, androidx.media3.exoplayer.RendererCapabilities.DecoderSupport, androidx.media3.exoplayer.RendererCapabilities.HardwareAccelerationSupport, androidx.media3.exoplayer.RendererCapabilities.Listener, androidx.media3.exoplayer.RendererCapabilities.TunnelingSupport
  • Field Summary

    Fields inherited from interface androidx.media3.exoplayer.Renderer

    DEFAULT_DURATION_TO_PROGRESS_US, MSG_CUSTOM_BASE, MSG_SET_AUDIO_ATTRIBUTES, MSG_SET_AUDIO_SESSION_ID, MSG_SET_AUX_EFFECT_INFO, MSG_SET_CAMERA_MOTION_LISTENER, MSG_SET_CHANGE_FRAME_RATE_STRATEGY, MSG_SET_IMAGE_OUTPUT, MSG_SET_PREFERRED_AUDIO_DEVICE, MSG_SET_PRIORITY, MSG_SET_SCALING_MODE, MSG_SET_SKIP_SILENCE_ENABLED, MSG_SET_VIDEO_EFFECTS, MSG_SET_VIDEO_FRAME_METADATA_LISTENER, MSG_SET_VIDEO_OUTPUT, MSG_SET_VIDEO_OUTPUT_RESOLUTION, MSG_SET_VOLUME, MSG_SET_WAKEUP_LISTENER, MSG_TRANSFER_RESOURCES, STATE_DISABLED, STATE_ENABLED, STATE_STARTED

    Fields inherited from interface androidx.media3.exoplayer.RendererCapabilities

    ADAPTIVE_NOT_SEAMLESS, ADAPTIVE_NOT_SUPPORTED, ADAPTIVE_SEAMLESS, ADAPTIVE_SUPPORT_MASK, AUDIO_OFFLOAD_GAPLESS_SUPPORTED, AUDIO_OFFLOAD_NOT_SUPPORTED, AUDIO_OFFLOAD_SPEED_CHANGE_SUPPORTED, AUDIO_OFFLOAD_SUPPORT_MASK, AUDIO_OFFLOAD_SUPPORTED, DECODER_SUPPORT_FALLBACK, DECODER_SUPPORT_FALLBACK_MIMETYPE, DECODER_SUPPORT_MASK, DECODER_SUPPORT_PRIMARY, FORMAT_SUPPORT_MASK, HARDWARE_ACCELERATION_NOT_SUPPORTED, HARDWARE_ACCELERATION_SUPPORT_MASK, HARDWARE_ACCELERATION_SUPPORTED, TUNNELING_NOT_SUPPORTED, TUNNELING_SUPPORT_MASK, TUNNELING_SUPPORTED
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    FfmpegAudioRenderer(android.os.Handler eventHandler, androidx.media3.exoplayer.audio.AudioRendererEventListener eventListener, androidx.media3.common.audio.AudioProcessor... audioProcessors)
    Creates a new instance.
    FfmpegAudioRenderer(android.os.Handler eventHandler, androidx.media3.exoplayer.audio.AudioRendererEventListener eventListener, androidx.media3.exoplayer.audio.AudioSink audioSink)
    Creates a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder
    createDecoder(androidx.media3.common.Format format, androidx.media3.decoder.CryptoConfig cryptoConfig)
     
    protected androidx.media3.common.Format
    getOutputFormat(androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder decoder)
    protected @androidx.media3.common.C.FormatSupport int
    supportsFormatInternal(androidx.media3.common.Format format)
     
    @androidx.media3.exoplayer.RendererCapabilities.AdaptiveSupport int
     

    Methods inherited from class androidx.media3.exoplayer.audio.DecoderAudioRenderer

    canReuseDecoder, getChannelMapping, getDurationToProgressUs, getMediaClock, getPlaybackParameters, getPositionUs, getSinkFormatSupport, handleMessage, hasSkippedSilenceSinceLastCall, isEnded, isReady, onDisabled, onEnabled, onPositionDiscontinuity, onPositionReset, onStarted, onStopped, onStreamChanged, render, setPlaybackParameters, sinkSupportsFormat, supportsFormat

    Methods inherited from class androidx.media3.exoplayer.BaseRenderer

    clearListener, createRendererException, createRendererException, disable, enable, getCapabilities, getClock, getConfiguration, getFormatHolder, getIndex, getLastResetPositionUs, getPlayerId, getReadingPositionUs, getState, getStream, getStreamFormats, getStreamOffsetUs, getTimeline, getTrackType, hasReadStreamToEnd, init, isCurrentStreamFinal, isSourceReady, maybeThrowStreamError, onInit, onRelease, onRendererCapabilitiesChanged, onReset, onTimelineChanged, readSource, release, replaceStream, reset, resetPosition, setCurrentStreamFinal, setListener, setTimeline, skipSource, start, stop

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface androidx.media3.exoplayer.Renderer

    enableMayRenderStartOfStream, setPlaybackSpeed
  • Constructor Details

    • FfmpegAudioRenderer

      public FfmpegAudioRenderer()
    • FfmpegAudioRenderer

      public FfmpegAudioRenderer(@Nullable android.os.Handler eventHandler, @Nullable androidx.media3.exoplayer.audio.AudioRendererEventListener eventListener, androidx.media3.common.audio.AudioProcessor... audioProcessors)
      Creates a new instance.
      Parameters:
      eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.
      eventListener - A listener of events. May be null if delivery of events is not required.
      audioProcessors - Optional AudioProcessors that will process audio before output.
    • FfmpegAudioRenderer

      public FfmpegAudioRenderer(@Nullable android.os.Handler eventHandler, @Nullable androidx.media3.exoplayer.audio.AudioRendererEventListener eventListener, androidx.media3.exoplayer.audio.AudioSink audioSink)
      Creates a new instance.
      Parameters:
      eventHandler - A handler to use when delivering events to eventListener. May be null if delivery of events is not required.
      eventListener - A listener of events. May be null if delivery of events is not required.
      audioSink - The sink to which audio will be output.
  • Method Details

    • getName

      public String getName()
    • supportsFormatInternal

      @FormatSupport protected @androidx.media3.common.C.FormatSupport int supportsFormatInternal(androidx.media3.common.Format format)
      Specified by:
      supportsFormatInternal in class androidx.media3.exoplayer.audio.DecoderAudioRenderer<androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder>
    • supportsMixedMimeTypeAdaptation

      public @androidx.media3.exoplayer.RendererCapabilities.AdaptiveSupport int supportsMixedMimeTypeAdaptation()
      Specified by:
      supportsMixedMimeTypeAdaptation in interface androidx.media3.exoplayer.RendererCapabilities
      Overrides:
      supportsMixedMimeTypeAdaptation in class androidx.media3.exoplayer.BaseRenderer
    • createDecoder

      protected androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder createDecoder(androidx.media3.common.Format format, @Nullable androidx.media3.decoder.CryptoConfig cryptoConfig) throws FfmpegDecoderException
      Specified by:
      createDecoder in class androidx.media3.exoplayer.audio.DecoderAudioRenderer<androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder>
      Throws:
      FfmpegDecoderException
    • getOutputFormat

      protected androidx.media3.common.Format getOutputFormat(androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder decoder)
      Specified by:
      getOutputFormat in class androidx.media3.exoplayer.audio.DecoderAudioRenderer<androidx.media3.decoder.ffmpeg.FfmpegAudioDecoder>