【问题标题】:Why ExoPlayer in Android OS-10 shows black preview screen while preview为什么 Android OS-10 中的 ExoPlayer 在预览时显示黑色预览屏幕
【发布时间】:2020-01-25 09:47:16
【问题描述】:

我正在以横向模式录制视频并使用 Exoplayer 以纵向模式显示预览,同时连续录制视频时改变方向反之亦然一旦播放器预览显示空白屏幕。 我使用 Exoplayer 2.9.6 作为 Gradle 的依赖项并使用 android OS 版本 10。

E/BufferQueueProducer:[SurfaceTexture-0-22659-29] setMaxDequeuedBufferCount:请求的缓冲区计数 2 小于 最少 3 个

E/Surface: IGraphicBufferProducer::setBufferCount(2) 返回无效的参数 E/ACodec:native_window_set_buffer_count 失败:无效参数 (22)

E/ExoPlayerImplInternal:内部 运行时错误。 java.lang.IllegalArgumentException 在 android.media.MediaCodec.native_setSurface(本机方法) 在 android.media.MediaCodec.setOutputSurface(MediaCodec.java:2042) 在 com.google.android.exoplayer2.video.MediaCodecVideoRenderer.setOutputSurfaceV23(MediaCodecVideoRenderer.java:1014) 在 com.google.android.exoplayer2.video.MediaCodecVideoRenderer.setSurface(MediaCodecVideoRenderer.java:422) 在 com.google.android.exoplayer2.video.MediaCodecVideoRenderer.handleMessage(MediaCodecVideoRenderer.java:387) 在 com.google.android.exoplayer2.ExoPlayerImplInternal.deliverMessage(ExoPlayerImplInternal.java:864) 在 com.google.android.exoplayer2.ExoPlayerImplInternal.sendMessageToTarget(ExoPlayerImplInternal.java:835) 在 com.google.android.exoplayer2.ExoPlayerImplInternal.sendMessageInternal(ExoPlayerImplInternal.java:817) 在 com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:330) 在 android.os.Handler.dispatchMessage(Handler.java:103) 在 android.os.Looper.loop(Looper.java:237) 在 android.os.HandlerThread.run(HandlerThread.java:67)

【问题讨论】:

  • 你播放的是本地存储的文件吗?
  • 我可以知道您使用哪种文件格式进行录制。以及使用的编码格式是什么?
  • @MohanRajS 我使用 .mp4 进行录制。 MediaEncoder mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

标签: java android exoplayer


【解决方案1】:

Android 10 向 MediaCodecInfo 引入了新的 API,用于查询编解码器是否是硬件加速的、是否仅是软件加速的,以及它是由设备制造商提供还是由 Android 平台提供。 ExoPlayer 2.11 通过新的 hardwareAccelerated、softwareOnly 和 vendor 标志在其自己的 MediaCodecInfo 类中显示此信息。即使在旧版本的 Android 上运行,这些标志也可以访问并且(在大多数情况下)设置正确。

进一步参考:ExoPlayer 2.11 -Resolve Media Codec Problems

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多