android音频(三)——利用ndk直接编译faac和faad(续2)
来源:互联网 发布:catia软件好学吗 编辑:程序博客网 时间:2024/05/16 09:14
step7 验证
1、在工程的主项目app下,编写java代码
app\src\main\java\com\thinking\maketest\Test.java
package com.thinking.maketest;/** * Created by Yu Yong on 2017/10/18. */public class Test { static { System.loadLibrary("com_thinking_faacd"); } public static native void test();}//javah -d E:\AV-study\MakeTest\app\jni -classpath E:\AV-study\MakeTest\app\build\intermediates\classes\debug com.thinking.maketest.Testapp\src\main\java\com\thinking\maketest\MainActivity.java
package com.thinking.maketest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Test.test(); }}
2、在app项目下新建jni目录,编写C++验证程序
app\jni\com_thinking_maketest_Test.h
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_thinking_maketest_Test */#ifndef _Included_com_thinking_maketest_Test#define _Included_com_thinking_maketest_Test#ifdef __cplusplusextern "C" {#endif/* * Class: com_thinking_maketest_Test * Method: test * Signature: ()V */JNIEXPORT void JNICALL Java_com_thinking_maketest_Test_test (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif
app\jni\test.cpp
#include "com_thinking_maketest_Test.h"#include <faac.h>#include <faad.h>#include <android\log.h>JNIEXPORT void JNICALL Java_com_thinking_maketest_Test_test (JNIEnv *, jclass){ faacEncHandle hEncoder; faacEncConfigurationPtr pConfiguration; __android_log_print(ANDROID_LOG_INFO, "yuyong", "faac test success"); NeAACDecHandle decoder = NeAACDecOpen(); NeAACDecClose(decoder); __android_log_print(ANDROID_LOG_INFO, "yuyong", "faad test success");}
3、编写编译脚本
app\jni\Application.mk
APP_STL := gnustl_staticAPP_CPPFLAGS := -frtti -fexceptionsAPP_CFLAGS += -Wno-error=format-securityAPP_ABI := allAPP_PLATFORM := android-24app\jni\Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := faacLOCAL_SRC_FILES := E:\AV-study\MakeTest\faac\libs\$(TARGET_ARCH_ABI)\libfaac.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := faadLOCAL_SRC_FILES := E:\AV-study\MakeTest\faad\libs\$(TARGET_ARCH_ABI)\libfaad.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := com_thinking_faacdLOCAL_SRC_FILES := test.cppLOCAL_C_INCLUDES += E:\AV-study\MakeTest\faac\jni\include \ E:\AV-study\MakeTest\faad\jni\includeLOCAL_LDLIBS += -llog -ldl -lzLOCAL_SHARED_LIBRARIES := faac faadinclude $(BUILD_SHARED_LIBRARY)
4、编译C++部分得到
E:\AV-study\MakeTest\app\jni>E:\android-ndk-r14-beta2\ndk-build[arm64-v8a] Compile++ : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[arm64-v8a] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\arm64-v8a"[arm64-v8a] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\arm64-v8a"[arm64-v8a] SharedLibrary : libcom_thinking_faacd.so[arm64-v8a] Install : libcom_thinking_faacd.so => libs/arm64-v8a/libcom_thinking_faacd.so[arm64-v8a] Install : libfaac.so => libs/arm64-v8a/libfaac.so[arm64-v8a] Install : libfaad.so => libs/arm64-v8a/libfaad.so[x86_64] Compile++ : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[x86_64] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\x86_64"[x86_64] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\x86_64"[x86_64] SharedLibrary : libcom_thinking_faacd.so[x86_64] Install : libcom_thinking_faacd.so => libs/x86_64/libcom_thinking_faacd.so[x86_64] Install : libfaac.so => libs/x86_64/libfaac.so[x86_64] Install : libfaad.so => libs/x86_64/libfaad.so[mips64] Compile++ : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[mips64] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\mips64"[mips64] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\mips64"[mips64] SharedLibrary : libcom_thinking_faacd.so[mips64] Install : libcom_thinking_faacd.so => libs/mips64/libcom_thinking_faacd.so[mips64] Install : libfaac.so => libs/mips64/libfaac.so[mips64] Install : libfaad.so => libs/mips64/libfaad.so[armeabi-v7a] Compile++ thumb: com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[armeabi-v7a] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\armeabi-v7a"[armeabi-v7a] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\armeabi-v7a"[armeabi-v7a] SharedLibrary : libcom_thinking_faacd.so[armeabi-v7a] Install : libcom_thinking_faacd.so => libs/armeabi-v7a/libcom_thinking_faacd.so[armeabi-v7a] Install : libfaac.so => libs/armeabi-v7a/libfaac.so[armeabi-v7a] Install : libfaad.so => libs/armeabi-v7a/libfaad.so[armeabi] Compile++ thumb: com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[armeabi] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\armeabi"[armeabi] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\armeabi"[armeabi] SharedLibrary : libcom_thinking_faacd.so[armeabi] Install : libcom_thinking_faacd.so => libs/armeabi/libcom_thinking_faacd.so[armeabi] Install : libfaac.so => libs/armeabi/libfaac.so[armeabi] Install : libfaad.so => libs/armeabi/libfaad.so[x86] Compile++ : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[x86] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\x86"[x86] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\x86"[x86] SharedLibrary : libcom_thinking_faacd.so[x86] Install : libcom_thinking_faacd.so => libs/x86/libcom_thinking_faacd.so[x86] Install : libfaac.so => libs/x86/libfaac.so[x86] Install : libfaad.so => libs/x86/libfaad.so[mips] Compile++ : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!") ^1 warning generated.[mips] Prebuilt : libfaac.so <= E:\AV-study\MakeTest\faac\libs\mips"[mips] Prebuilt : libfaad.so <= E:\AV-study\MakeTest\faad\libs\mips"[mips] SharedLibrary : libcom_thinking_faacd.so[mips] Install : libcom_thinking_faacd.so => libs/mips/libcom_thinking_faacd.so[mips] Install : libfaac.so => libs/mips/libfaac.so[mips] Install : libfaad.so => libs/mips/libfaad.so
5、运行程序
10-18 02:49:27.524 10677-10677/? I/yuyong: faac test success10-18 02:49:27.524 10677-10677/? I/yuyong: faad test success
阅读全文
0 0
- android音频(三)——利用ndk直接编译faac和faad(续2)
- android音频(三)——利用ndk直接编译faac和faad(续1)
- android音频(三)——利用ndk直接编译faac和faad
- AAC音频编码库FAAC和解码库FAAD移植
- ffmpeg lame faad faac 的编译
- FAAC源码阅读(1)——AAC和音频编码的介绍
- FAAC源码阅读(1)——AAC和音频编码的介绍
- 【音频】Faad源码交叉编译
- FAAC源码阅读(3)——FAAC的接口
- Android ndk探索之一(利用Android Studio和ndk编译c)
- android音频(二)——faad2编译和使用
- <android编译ffmpeg+x264+faac> <Android/NDK环境下FFmpeg及AAC,MP3,X264的编译>
- Android NDK学习--编译和调试(Ubuntu+Eclipse+NDK)
- ubuntu下编译适合ndk的faac
- ubuntu下编译适合ndk的faac
- faaD编译
- android编译ffmpeg+x264+faac
- Android 编译系统(NDK)
- 中国颁布本地数据存储法律引来各大企业的恐慌
- easyui 日期框,结束时间大于开始时间
- sizeof与strlen的区别
- 侧滑recyclerView的置顶和删除
- [JavaScript]动态监测窗口变化并调整body的padding-top
- android音频(三)——利用ndk直接编译faac和faad(续2)
- 将某个数据库表字段按照自然顺序赋值排序
- java开发中,调用动态库(.dll文件)失败:Can't find dependent libraries
- Codeforces 875E Delivery Club 妙哉!
- IFE-TASK25(任务二十五:JavaScript和树(四))
- 使用AndroidStudio编写第一个JNI程序
- C# 生成二维码图片(位深度可设) QRCode
- python 使用 jpype 调用java类
- 个人工作日记