Sometimes renderer errors appears in ExoPlayer, and after that sound completely disappears until app restart. It happens because player thread is stopped, therefore I've added player reinitialization - now next song is played with sound.
Stacktrace:
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/ACodec: [OMX.google.flac.decoder] ERROR(0x8000100b)
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/ACodec: signalError(omxError 0x8000100b, internalError -2147483648)
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/MediaCodec: Codec reported err 0x8000100b, actionCode 0, while in state 6
2020-10-25 19:25:42.742 18293-18772/f.f.freezer E/ExoPlayerImplInternal: Renderer error: index=1, type=audio, format=Format(null, null, null, audio/flac, null, 1411200, null, [-1, -1, -1.0], [2, 44100]), rendererSupport=YES
com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
at com.google.android.exoplayer2.BaseRenderer.createRendererException(BaseRenderer.java:359)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:735)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.releaseOutputBuffer(Native Method)
at android.media.MediaCodec.releaseOutputBuffer(MediaCodec.java:2743)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:825)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1590)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:721)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
2020-10-25 19:25:42.787 18293-18772/f.f.freezer E/ExoPlayerImplInternal: Disable failed.
java.lang.IllegalStateException
at android.media.MediaCodec.native_stop(Native Method)
at android.media.MediaCodec.stop(MediaCodec.java:2084)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:671)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:773)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:636)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.onDisabled(MediaCodecAudioRenderer.java:717)
at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:168)
at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1142)
at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:891)
at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:850)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:382)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
2020-10-25 19:25:42.795 18293-18293/f.f.freezer E/AudioPlayer: TYPE_RENDERER: null
Sometimes renderer errors appears in ExoPlayer, and after that sound completely disappears until app restart. It happens because player thread is stopped, therefore I've added player reinitialization - now next song is played with sound.
Stacktrace:
```
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/ACodec: [OMX.google.flac.decoder] ERROR(0x8000100b)
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/ACodec: signalError(omxError 0x8000100b, internalError -2147483648)
2020-10-25 19:25:42.647 18293-23353/f.f.freezer E/MediaCodec: Codec reported err 0x8000100b, actionCode 0, while in state 6
2020-10-25 19:25:42.742 18293-18772/f.f.freezer E/ExoPlayerImplInternal: Renderer error: index=1, type=audio, format=Format(null, null, null, audio/flac, null, 1411200, null, [-1, -1, -1.0], [2, 44100]), rendererSupport=YES
com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
at com.google.android.exoplayer2.BaseRenderer.createRendererException(BaseRenderer.java:359)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:735)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.releaseOutputBuffer(Native Method)
at android.media.MediaCodec.releaseOutputBuffer(MediaCodec.java:2743)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:825)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1590)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:721)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
2020-10-25 19:25:42.787 18293-18772/f.f.freezer E/ExoPlayerImplInternal: Disable failed.
java.lang.IllegalStateException
at android.media.MediaCodec.native_stop(Native Method)
at android.media.MediaCodec.stop(MediaCodec.java:2084)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:671)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:773)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:636)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.onDisabled(MediaCodecAudioRenderer.java:717)
at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:168)
at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1142)
at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:891)
at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:850)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:382)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
2020-10-25 19:25:42.795 18293-18293/f.f.freezer E/AudioPlayer: TYPE_RENDERER: null
```
Este Pull Request puede ser fusionado automáticamente.
Sometimes renderer errors appears in ExoPlayer, and after that sound completely disappears until app restart. It happens because player thread is stopped, therefore I've added player reinitialization - now next song is played with sound.
Stacktrace: