SimpleDecoderAudioRenderer extends BaseRenderer implements MediaClock { @Override @Capabilities public final int supportsFormat(Format format) { if (!MimeTypes.isAudio(format.sampleMimeType)) { return RendererCapabilities.create(FORMAT_UNSUPPORTED_TYPE); } @FormatSupport int formatSupport = supportsFormatInternal(drmSessionManager, format); if (formatSupport <= FORMAT_UNSUPPORTED_DRM) { return RendererCapabilities.create(formatSupport); } @TunnelingSupport int tunnelingSupport = Util.SDK_INT >= 21 ? TUNNELING_SUPPORTED : TUNNELING_NOT_SUPPORTED; return RendererCapabilities.create(formatSupport, ADAPTIVE_NOT_SEAMLESS, tunnelingSupport); } SimpleDecoderAudioRenderer();  SimpleDecoderAudioRenderer(
      @Nullable Handler eventHandler,
      @Nullable AudioRendererEventListener eventListener,
      AudioProcessor... audioProcessors);  SimpleDecoderAudioRenderer(
      @Nullable Handler eventHandler,
      @Nullable AudioRendererEventListener eventListener,
      @Nullable AudioCapabilities audioCapabilities);  SimpleDecoderAudioRenderer(
      @Nullable Handler eventHandler,
      @Nullable AudioRendererEventListener eventListener,
      @Nullable AudioCapabilities audioCapabilities,
      @Nullable DrmSessionManager<ExoMediaCrypto> drmSessionManager,
      boolean playClearSamplesWithoutKeys,
      AudioProcessor... audioProcessors);  SimpleDecoderAudioRenderer(
      @Nullable Handler eventHandler,
      @Nullable AudioRendererEventListener eventListener,
      @Nullable DrmSessionManager<ExoMediaCrypto> drmSessionManager,
      boolean playClearSamplesWithoutKeys,
      AudioSink audioSink); @Override @Nullable MediaClock getMediaClock(); @Override @Capabilities final int supportsFormat(Format format); @Override void render(long positionUs, long elapsedRealtimeUs); @Override boolean isEnded(); @Override boolean isReady(); @Override long getPositionUs(); @Override void setPlaybackParameters(PlaybackParameters playbackParameters); @Override PlaybackParameters getPlaybackParameters(); @Override void handleMessage(int messageType, @Nullable Object message);  }
@Config(sdk = 19) @Test public void testSupportsFormatAtApi19() { assertThat(audioRenderer.supportsFormat(FORMAT)) .isEqualTo(ADAPTIVE_NOT_SEAMLESS | TUNNELING_NOT_SUPPORTED | FORMAT_HANDLED); }
@Config(sdk = 21) @Test public void testSupportsFormatAtApi21() { assertThat(audioRenderer.supportsFormat(FORMAT)) .isEqualTo(ADAPTIVE_NOT_SEAMLESS | TUNNELING_SUPPORTED | FORMAT_HANDLED); }