ExoPlayer
ExoPlayer copied to clipboard
Use ExoPlay to play a web video URL and open the camera at the same time, the player fails to play
ExoPlayer Version
2.15.1
Devices that reproduce the issue
Android9 SDK28 device
Devices that do not reproduce the issue
Android9 SDK28 device
Reproducible in the demo app?
No
Reproduction steps
1、Open Camera 2、play video by exoplayer
Expected result
Playback failed, player code: ` val mediaSourceFactory: MediaSourceFactory = DefaultMediaSourceFactory(context) player = SimpleExoPlayer.Builder(context) .setMediaSourceFactory(mediaSourceFactory) .setUseLazyPreparation(false).build()
player.setMediaItem(MediaItem.fromUri(url))
player.repeatMode =Player.REPEAT_MODE_OFF // 播放循环模式
volume(SysVolumeManager.getStreamVolume())
viewPlayer.setKeepContentOnPlayerReset(true)
viewPlayer.player = player
viewPlayer.resizeMode = RESIZE_MODE_FIXED_WIDTH
player.playWhenReady = isPlay
player.prepare()
here is the log:
E/ACodec: [OMX.amlogic.avc.decoder.awesome] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648
I/AmAVUtils: AmAVUtils::isAudioExtendFormat input = video/avc
I/ACodec: codec does not support config priority (err -1010)
D/SurfaceUtils: disconnecting from surface 0x12479808, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils: connecting to surface 0x12479808, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils: set up nativeWindow 0x12479808 for 720x1278, color 0x11, rotation 0, usage 0x402b00
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 9 failed: -1010
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 8 failed: -1010
W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 7 failed: -1010
W/: buffer descriptor with invalid usage bits 0x2000
E/GraphicBufferAllocator: Failed to allocate (720 x 1278) layerCount 1 format 17 usage 402b00: 5
E/BufferQueueProducer: [SurfaceTexture-0-4236-17] dequeueBuffer: createGraphicBuffer failed
E/ACodec: dequeueBuffer failed: Out of memory (12)
E/ACodec: Failed to allocate buffers after transitioning to IDLE state (error 0xfffffff4)
E/ACodec: signalError(omxError 0x80001001, internalError -12)
E/MediaCodec: Codec reported err 0xfffffff4, actionCode 0, while in state 5
W/AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
int32_t type = 0
int32_t event = 0
int32_t data1 = 0
int32_t data2 = 1
} unhandled in root state.
D/SurfaceUtils: disconnecting from surface 0x12479808, reason disconnectFromSurface
W/MediaCodecRenderer: Failed to initialize decoder: OMX.amlogic.avc.decoder.awesome
android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
E/MediaCodecVideoRenderer: Video codec error
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.amlogic.avc.decoder.awesome, Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1034)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
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: android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
E/ExoPlayerImplInternal: Playback error
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:558)
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: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.amlogic.avc.decoder.awesome, Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1034)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
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: android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:57)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1121)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1027)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:585)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1455)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:713)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:981)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:810)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:978)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:482)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
D/Barbell-StreamLesson: ╔════════════════════════════════════════════════════════════════════════════════════════
D/Barbell-StreamLesson: ║ Thread: main
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ ListenerSet$$ExternalSyntheticLambda1.run (null:6)
D/Barbell-StreamLesson: ║ ListenerSet.lambda$queueEvent$0 (ListenerSet.java:170)
D/Barbell-StreamLesson: ║ ListenerSet$ListenerHolder.invoke (ListenerSet.java:261)
D/Barbell-StreamLesson: ║ ExoPlayerImpl$$ExternalSyntheticLambda24.invoke (null:4)
D/Barbell-StreamLesson: ║ ExoPlayerImpl.lambda$updatePlaybackInfo$12 (ExoPlayerImpl.java:1308)
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ 4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
D/Barbell-StreamLesson: ╚════════════════════════════════════════════════════════════════════════════════════════
D/StreamLesson: 4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
D/Barbell-StreamLesson: ╔════════════════════════════════════════════════════════════════════════════════════════
D/Barbell-StreamLesson: ║ Thread: main
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ ListenerSet$$ExternalSyntheticLambda1.run (null:6)
D/Barbell-StreamLesson: ║ ListenerSet.lambda$queueEvent$0 (ListenerSet.java:170)
D/Barbell-StreamLesson: ║ ListenerSet$ListenerHolder.invoke (ListenerSet.java:261)
D/Barbell-StreamLesson: ║ ExoPlayerImpl$$ExternalSyntheticLambda4.invoke (null:4)
D/Barbell-StreamLesson: ║ ExoPlayerImpl.lambda$updatePlaybackInfo$18 (ExoPlayerImpl.java:1349)
D/Barbell-StreamLesson: ╟────────────────────────────────────────────────────────────────────────────────────────
D/Barbell-StreamLesson: ║ state = 1
D/Barbell-StreamLesson: ╚════════════════════════════════════════════════════════════════════════════════════════
D/StreamLesson: state = 1
`
Actual result
Playback failed:4001 : MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [720, 1278, 29.99875], [-1, -1]), format_supported=YES
Media
any network video url
Bug Report
- [ ] You will email the zip file produced by
adb bugreport
to [email protected] after filing this issue.