当前位置: 代码迷 >> Android >> Android4.0 模拟器 视频播放解决方案
  详细解决方案

Android4.0 模拟器 视频播放解决方案

热度:319   发布时间:2016-04-28 07:42:28.0
Android4.0 模拟器 视频播放
Android4.0 模拟器 视频播放 出现

W/GraphicBufferAllocator(   34): alloc(176, 144, 842094169, 00002930, ...) failed -22 (Invalid argument)
E/SurfaceFlinger(   34): GraphicBufferAlloc::createGraphicBuffer(w=176, h=144) failed (Invalid argument), handle=0x0
E/SurfaceTexture(   34): [SurfaceView] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
W/SoftwareRenderer(   37): Surface::dequeueBuffer returned error -22

是什么原因,该怎样解决?

------解决方案--------------------
Invalid argument 无效参数
请贴出播放视频相关代码
------解决方案--------------------
显示设备分配BUFFER失败,可能是显示驱动OPEGLES的问题,呵呵
------解决方案--------------------
google 在ICS 上graphicbuffer管理机制做了改动。可以对比4.0和2.3的,softwareRenderer.cpp
但是gralloc.xxx.so目前又不支持HAL_PIXEL_FORMAT_YV12。
最简单的办法,是注释掉softwareRenderer.cpp,65行,case OMX_COLOR_FormatYUV420Planar: 播放就有视频出来了。

------解决方案--------------------
对的,要么自己修改一下gralloc.xx.so吧,支持HAL_PIXEL_FORMAT_YV12就OK了,
目前流行硬件解码,所以估计google都没有测试这一块,就把代码上传了
引用:
google 在ICS 上graphicbuffer管理机制做了改动。可以对比4.0和2.3的,softwareRenderer.cpp
但是gralloc.xxx.so目前又不支持HAL_PIXEL_FORMAT_YV12。
最简单的办法,是注释掉softwareRenderer.cpp,65行,case OMX_COLOR_FormatYUV420Planar: 播放就有视频出来了。
  相关解决方案