MediaCodec解码 使用SurfaceView进行渲染
MediaCodec.dequeueInputBuffer/MediaCodec.dequeueOutputBuffer获取需要一定的时间
视频为30fps 一开始设置timeoutUs为30ms
dequeueOutputBuffer多次返回-1 导致dequeueInputBuffer耗尽 无法再获取 也返回-1
此时Mediacodec会自动重置一些数据 导致绿屏
可以将timeoutUs设置长一些 为200ms 问题解决
猜测解码时 初始化老机器耗时过多引起

本文探讨了MediaCodec解码过程中遇到的问题,特别是在使用SurfaceView进行渲染时,由于dequeInputBuffer和dequeOutputBuffer的耗时问题,导致视频播放出现绿屏现象。通过调整timeoutUs参数至200ms,解决了老机器上初始化耗时过长引发的问题。
1709

被折叠的 条评论
为什么被折叠?



