Так что им пытается сделать, это:Включая предварительно построенный статический/общего NDK ОМТА внутри другого проекта Lib NDK
Построить плагин рендеринга в C++ для НКА (передать его растровый + textureID и его отображает растровое изображение на текстуре). Это прекрасно работает.
Добавить плагин рендеринга в проект C (для NDK), который использует ffmpeg для декодирования видео, каждый кадр видео передается в отображаемый плагин.
я могу получить рендеринг плагин для создания в проект C, и соответствующие файлы будут перемещены в Obj/local/
или libs/
каталог (я пробовал как статический, так и совместно строит для визуализатора). Однако я не могу заставить его включить в настоящий код C.
каталог выглядит следующим образом:
Это обыкновение ссылка, когда я пытаюсь добавить #include <renderplugin.h>
в мой код, говоря file or directory could not be found
Мои Android.mk
в jni
папке:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NativeMediaPlayer
LOCAL_SRC_FILES := NativeMediaPlayer.c
LOCAL_LDLIBS := -llog -lz -lGLESv2
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libavutil liblog libswscale NativeRenderPlugin
include $(BUILD_SHARED_LIBRARY)
#ffmpeg
$(call import-add-path, ../)
$(call import-module, NativeMediaPlayer/external)
#render plugin
$(call import-add-path, jni)
$(call import-module, prebuilt)
И Android.mk
в prebuilt
папки, в которой плагин:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libNativeRenderPlugin
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib/libNativeRenderPlugin.so
LOCAL_EXPORT_C_INCLUDES += $(TARGET_ARCH_ABI)/include
include $(PREBUILT_SHARED_LIBRARY)
_ "Но в моей библиотеке нет файла .h". Тогда как вы планируете его использовать? У вас есть прототипы функций где-то еще? Если да, почему бы не поместить их в заголовок для этой библиотеки? – Michael
В любом случае вы не '# include'' .a' или' .so'file - вы ссылаетесь на них в своем make-файле. – Michael
Я немного нуб в целом NDK. Я не знал, что прототипы функций должны быть помещены в файл .h. Есть ли хороший ресурс для выяснения того, как это сделать правильно? Документы NDK немного «легки». – sh3rifme