SDK集成指南
platform :ios, '9.0' target 'AEAudioDemo' do pod 'AudioSdkTob', :path => './../ios_sdk' end%
根据实际情况修改path
的目录和工程名AEAudioDemo
//使用oc接口 #import "SAMICore.h" //使用c接口 #include "sami_core.h"
注意
部分情况工程不能直接设置找到头文件目录,会提示找不到头文件,在工程中手动增加路径即可,以framework动态库为例子
Bitcode
将Enable Bitcode
设置为No
,关闭Bitcode。
Foundation.framework
,Accelerate.framework
,MetalPerformanceShaders.framework
,AudioToolbox.framework
,CoreFoundation.framework
,Metal.framework
,UIKit.framework
,CoreVideo.framework
下图展示增加的位置
注意
如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节
依赖的TTNet库需要在Link Binary With Libraries中手动添加:
在build.gradle中导入使用的aar
dependencies { implementation files('../../sami_core_tob_release/sdk/pub/android/aar/audiosdk-release.aar') }
需要在Android工程APP的build.gradle中增加依赖,此步骤目的是编译app包含aar中包含的libc++_shared.so
implementation files('../../../dep_libs/cpp_shared-21.0.0-sami.aar')
注意
如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节
依赖的TTNet库需要在Android工程APP的build.gradle中依赖:
implementation files('../../../dep_libs/ttnet/android/cronet-4.0.72.1-tob.aar') implementation files('../../../dep_libs/ttnet/android/cronet-so-4.0.72.1-tob.aar') implementation files('../../../dep_libs/ttnet/android/boringssl-so-1.0.9.aar') implementation files('../../../dep_libs/ttnet/android/ttnet-4.0.72.1-tob.aar')
在onCreate函数中加入如下调用:
import com.ttnet.org.chromium.base.ContextUtils; public void onCreate() { ... ContextUtils.initApplicationContext(getApplicationContext()); ... }
如果业务上开启了混淆,需要添加如下混淆规则,防止找不到sdk相关类导致启动crash:
-keep class com.mammon.audiosdk.** { *;}
根据实际修改INTERFACE_INCLUDE_DIRECTORIES
和IMPORTED_LOCATION
add_library(bdaudioeffect SHARED IMPORTED GLOBAL) set_target_properties(bdaudioeffect PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/sdk/android_sdk/inc IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/sdk/android_sdk/lib/${ANDROID_ABI}/libbdaudioeffect.so ) target_link_libraries(native-lib bdaudioeffect)
在源码中使用:增加头文件之后就能直接调用了
#include "sami_core.h" //增加头文件
注意
如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节
依赖的TTNet库需要在Android工程APP的build.gradle中依赖:
implementation files('libs/cronet-4.0.72.1-tob.aar') implementation files('libs/cronet-so-4.0.72.1-tob.aar') implementation files('libs/boringssl-so-1.0.9.aar') implementation files('libs/ttnet-4.0.72.1-tob.aar')
在onCreate函数中加入如下调用:
import com.ttnet.org.chromium.base.ContextUtils; public void onCreate() { ... ContextUtils.initApplicationContext(getApplicationContext()); ... }
Android Gradle 插件 4.0 之前需要增加sourceSets,4.0已经因为cmake IMPORTED了库,不需要另外设置。可以查看google官方解释
sourceSets{ main{ jniLibs.srcDirs = ['libs/samicore/libs'] } }
在cmake中导入库,根据实际使用修改路径
add_library(bdaudioeffect SHARED IMPORTED GLOBAL) set_target_properties(bdaudioeffect PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/sdk/mac_sdk/inc IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/sdk/mac_sdk/lib/libbdaudioeffect.dylib) target_link_libraries(demo PRIVATE bdaudioeffect)
引用头文件并调用函数
//使用oc接口 #import "SAMICore.h" //使用c接口 #include "sami_core.h"
注意
如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节
ttnet的windows版本直接放置到依赖库内部,路径 dep_libs/ttnet/mac/x86_64/libsscronet.dylib
(以x64/x86_64架构为例)
add_library(ttnet STATIC IMPORTED GLOBAL) set_target_properties(ttnet PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../ dep_libs/ttnet/mac/x86_64/libsscronet.dylib ) target_link_libraries(demo PRIVATE ttnet)
在cmake中导入库,根据实际使用修改路径
add_library(bdaudioeffect SHARED IMPORTED GLOBAL) set_target_properties(bdaudioeffect PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/sdk/linux_sdk/inc IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/sdk/linux_sdk/lib/libbdaudioeffect.so) target_link_libraries(demo PRIVATE bdaudioeffect)
引用头文件并调用函数
#include "sami_core.h" //增加头文件 //调用具体函数
根据实际需要修改是使用mt/md版本,x64/x86版本
set_target_properties(bdaudioeffect PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/sdk/win_sdk/inc IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/sdk/win_sdk/lib/x64/Release/bdaudioeffect—mt.lib IMPORTED_IMPLIB ${CMAKE_CURRENT_SOURCE_DIR}/sdk/win_sdk/lib/x64/Release/bdaudioeffect-mt.lib ) target_link_libraries(demo PRIVATE bdaudioeffect)
引用头文件并调用函数
#include "sami_core.h" //增加头文件 //调用具体函数
注意
如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节
ttnet的windows版本直接放置到依赖库内部,路径 dep_libs/ttnet/win/x64/sscronet.dll(以x64架构为例);sscronet.lib是sscronet.dll的符号表,编译阶段直接使用符号表
add_library(ttnet STATIC IMPORTED GLOBAL) set_target_properties(ttnet PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../dep_libs/ttnet/win/x64/ sscronet.lib IMPORTED_IMPLIB ${CMAKE_CURRENT_SOURCE_DIR}/../dep_libs/ttnet/win/x64/ sscronet.lib ) target_link_libraries(demo PRIVATE ttnet)