- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想创建一个使用 Android system/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
不是公共(public) API 的一部分。这意味着理论上,您不应该依赖它们。但在实践中,这些库存在于所有设备上,但它们是不同的。
您可以从您的设备中提取此二进制文件,甚至可以使用命令从模拟器中提取此二进制文件
adb pull /system/lib/libmedia.so C:/android-ndk/platforms/android-14/arch-arm/usr/lib
这会将 ths 文件与公共(public) API 放在一起,以便与 ndk-build 一起使用它更容易。另一方面,您应该意识到 fragment 化不仅存在于不同级别的 Android 之间,还存在于芯片组、制造商甚至模型之间。
为了处理这个问题,我从不同的设备拉 .so 文件到单独的目录,并将其中一个 添加到链接器路径,例如
LOCAL_LDLIBS += -Lc:/android/galaxys.4.1.2.system.lib
上面的说明无法解决您的方法所面临的大问题。 libmedia.so
不打算链接到用户应用程序。它假定特权用户的上下文可以访问 protected 设备,例如相机、编解码器和屏幕。
如果您的目标是 Root设备或准备自定义 ROM,则可以充分利用此库。并知道您在做什么,以及如何避免从系统中窃取重要资源。
否则,链接媒体库几乎没有什么好处。
关于android - 如何使用 android.mk 链接到 Android NDK 应用程序中的 libmedia.so 系统库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115827/
我正在检查直接连接到 libmedia\AudioFlinger 以播放\录制原始音频的可能性(就像 AudioTrack\AudioRecord 那样)。 目的是解决这 2 个 Java 类的最小缓
我试图掌握实际发生的事情,但缺点是我有一个 WebView,它试图加载一个 Flash 文件(音频/视频嵌入),然后在整个应用程序崩溃到主屏幕之前挂起片刻. 我知道 Flash 不再受到官方支持,但据
我想创建一个使用 Android system/lib/libmedia.so 的播放器。 直接使用JNI播放视频。 在 Android.mk 中,我添加了“-lmedia”以包含库,但我无法直接链接
我是一名优秀的程序员,十分优秀!