One*_*lty 5 android android-ndk
我想创建一个使用Android系统/ lib/libmedia.so的播放器.
直接使用JNI播放视频.
在Android.mk中,我添加"-lmedia"来包含库,但我不能直接链接它.
这是我的过程.
编写一个Cpp文件,其中包含libmedia.so中的一些头文件
在LOCAL_LDLIBS的Android.mk中添加"-lmedia"
如..
LOCAL_LDLIBS -lmedia -lstagefright
使用ndk-build来构建.so
发生了错误!!
有没有人有帮助的答案?
libmedia.so并且libsinstructionght.so不是公共API的一部分.这意味着理论上,你不应该依赖它们.但实际上,这些库存在于所有设备上,但它们是不同的.
您可以从设备中提取此二进制文件,甚至可以使用命令从模拟器中提取
adb pull /system/lib/libmedia.so C:/android-ndk/platforms/android-14/arch-arm/usr/lib
Run Code Online (Sandbox Code Playgroud)
这将把文件与公共API一起放在一起,这样就可以更容易地将它与ndk-build一起使用.另一方面,你应该知道不同级别的Android之间的碎片,而不是芯片组,制造商,甚至模型.
为了解决这个问题,我将 来自不同设备的.so文件拖到单独的目录中,并将其中一个添加到链接器路径中,例如
LOCAL_LDLIBS += -Lc:/android/galaxys.4.1.2.system.lib
Run Code Online (Sandbox Code Playgroud)
上述说明无法解决您所采用的方法所面临的重大问题.libmedia.so并非旨在链接到用户应用程序.它假定特权用户的上下文可以访问受保护的设备,例如摄像头,编解码器和屏幕.
如果您定位到有根设备或准备自定义ROM,则可以充分利用此库.并且知道你在做什么,以及如何避免从系统中窃取必要的资源.
否则,链接媒体库的收益很少.
| 归档时间: |
|
| 查看次数: |
10939 次 |
| 最近记录: |