【问题标题】:Add libstagefright in my Android NDK Application在我的 Android NDK 应用程序中添加 libstagefright
【发布时间】:2014-03-27 06:49:34
【问题描述】:

我对@9​​87654321@ 代码进行了一些更改并编译了它。现在我想在我的应用程序中添加创建的libstagefright.so

Android.mk 中,我添加为LOCAL_SRC_FILES 编译的libstagefright.so 库和路径。

这里是`

   LOCAL_PATH := $(call my-dir)

   include $(CLEAR_VARS)
   LOCAL_MODULE := libstagefright  
   LOCAL_SRC_FILES := ./Source/out/target/product/generic/system/lib/libstagefright.so
   include $(PREBUILT_SHARED_LIBRARY)

   include $(CLEAR_VARS)

   LOCAL_MODULE    := example
   LOCAL_SRC_FILES := example.cpp
   LOCAL_LDLIBS := -llog-landroid 
   LOCAL_SHARED_LIBRARIES := libstagefright 
   include $(BUILD_SHARED_LIBRARY)

当我在构建和运行程序时,我没有看到库中有任何变化。我没有看到任何变化是什么问题?

提前致谢。

【问题讨论】:

  • 您如何使用libstagefright.so?通常,人们会使用MediaPlayerService 来检索media 的特定功能及其工作。将此文件添加为 Source File 将无济于事。您能否说明您是如何使用libstagefright.so 的服务的?
  • @Ganesh ...我正在尝试从 NDK 进行硬件解码,但我需要检查 libstagefright.so 中的日志并添加我自己的日志。
  • 您可以启用日志,在源中添加自己的日志并重建库。请替换您的system.img 中的库或直接在设备上@9​​87654333@。这不能解决您的问题吗?
  • @Ganesh... 为此我必须具有 root 访问权限。正确的?除此之外还有什么解决办法吗?
  • 如果您没有 root 访问权限,请重建系统以创建新的 system.img 并将其刷入系统。您不能在尝试调试时简单地启动系统吗?

标签: android c++ android-ndk stagefright


【解决方案1】:

您可以将 AOSP 派生库构建为 libmybetterstagefrght.so,而不是 libstagefright.so,并在您的应用程序中使用它而不是 stagefright。您可以像任何其他库一样将您的库放在您的libs 文件夹中。你不需要root。

请注意,您构建的库仍将连接到/system/lib 中的许多 OMX 和其他二进制文件,因此应维护所有接口。您可能希望从与您设备的系统级别对应的 AOSP 版本开始。如果设备使用定制的 Android,您可能会遇到兼容性问题 - 为获得最佳效果,请使用 Nexus 设备。

【讨论】:

  • 感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 2020-11-11
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多