之前在2.2上移植成功的ffmepg0.10在2.3上没法使用,表现为无法load .so文件。
原因是2.2和2.3的surface实现发生了区别,解决方法比较多。目前实现了一种(第二种同步还有点问题)
简单记录下步骤
1.类似2.2系统,直接在2.3源码树下编译出需要的库。(参考havlenaptr的代码包和网上一系列编译android源码树的文章,关于ffmpeg的编译已记录在
Win7下利用MinGW和Android NDK编译ffmpeg0.10(neon优化)
具体操作方法,从havlenaptr的framework/base包中取出surface.cpp和audiotrack.cpp(相应头文件和Android.mk)放到android2.3 源码树的framework/base/native目录下mm即可。
2.OpenGL_ES实现。
这个理论上应该不会有2.2和2.3之间的差别。但是貌似需要自己写同步。目前进展是分别实现了图像的显示和声音的输出,但还没有合在一起。
完成之后再贴在本文。
貌似OpenGL也不行啊,还是需要调用系统自带的audio框架,不太好了解决。跟一个国外程序员发了几封邮件,他也说要实现通用的比较困难。
目前想法是先在2.3上做完,再重新编译库吧。。