【发布时间】:2014-08-03 18:26:56
【问题描述】:
我开始使用怯场框架工作,在我的视频会议应用程序中的 Jelly bean 之前在 android 中实现硬件解码器。
我已经在Mac系统中下载并构建了android源代码。我不清楚与 AOSP 合作的整个想法。我的问题是(关于怯场框架)
在 AOSP 构建之后,我在哪里可以找到 libstagefright.so?。
如果我在课堂上使用 OMX 编解码器进行解码,我应该如何将 libstagefright.so 链接到我的应用程序的本机代码?如果我通过复制 libstagefright.so 并通过 make 文件链接它来构建我的本机代码,是这样吗?
如何在我的应用程序中使用它?如果我通过 System.loadLibrary(" ") 加载它,它会工作吗??
更新:
我已经尝试过 Ganesh 的建议。但是当我尝试使用 NDK 构建项目时,它并没有将包含的标头作为 LOCAL_C_INCLUDES。
这是我的 android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := custom_decoder
LOCAL_C_INCLUDES := $(LOCAL_PATH)\includes \
frameworks/av/media/libstagefright/include \
frameworks/native/include/media/openmax \
frameworks/base/include/media/stagefright
LOCAL_SHARED_LIBRARIES := \
libstagefright libstagefright_omx libstagefright_foundation libutils liblog
LOCAL_SRC_FILES := custom_decoder_jni.cpp custom_decoder.cpp
include $(BUILD_SHARED_LIBRARY)
在读取 AOSP 的包含时,custom_decoder.h 会显示错误。
fatal error: DataSource.h: No such file or directory.
我的项目中没有包含任何 AOSP .so(根据 Ganesh 在评论 2 中的建议)。我应该这样做吗?
我还应该做些什么来构建它......
【问题讨论】:
-
libstagefright和 OMX 在 Gingerbread 之后的所有 Android 设备上都可用,您无需构建 AOSP 即可使用它。 -
@Alex Cohn 感谢您的回复。我是通过android ndk来做的。要构建我将调用 OMXCodec api 的本机代码,我需要包含 libstagefright.so 不,因为它们没有暴露在 ndk 中?为此,我进行了 AOSP 构建...如果我的方式错误,请给我一些更正........
标签: android android-ndk android-source stagefright