You need to enable JavaScript to run this app.
导航

SDK集成指南

最近更新时间2023.09.04 17:40:05

首次发布时间2021.08.25 18:09:53

SDK集成指南

ios-xcode

一、导入库、使用

  1. 修改podfile文件
platform :ios, '9.0'

target 'AEAudioDemo' do
   pod 'AudioSdkTob', :path => './../ios_sdk'
end%

根据实际情况修改path的目录和工程名AEAudioDemo

  1. 执行pod install
  2. 使用
//使用oc接口
#import "SAMICore.h"
//使用c接口
#include "sami_core.h"

注意

部分情况工程不能直接设置找到头文件目录,会提示找不到头文件,在工程中手动增加路径即可,以framework动态库为例子

二、设置项目参数

Bitcode
Enable Bitcode设置为No,关闭Bitcode。

三、增加依赖库

  1. 链接系统库

Foundation.framework,
Accelerate.framework,
MetalPerformanceShaders.framework,
AudioToolbox.framework,
CoreFoundation.framework,
Metal.framework,
UIKit.framework,
CoreVideo.framework
下图展示增加的位置

  1. 网络库

注意

如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节

  • ttnet
    • libEncryptor.a
    • libOneKit_BaseKit_awesome_ios.a
    • libOneKit_Reachability_awesome_ios.a
    • libOneKit_Section_awesome_ios.a
    • libOneKit_Service_awesome_ios.a
    • libOneKit_StartUp_awesome_ios.a
    • libboringssl.a
    • libboringssl_asm.a
    • libcrcrypto.a
    • TTNetworkManager.framework

依赖的TTNet库需要在Link Binary With Libraries中手动添加:

android-java

一、导入aar

在build.gradle中导入使用的aar

dependencies {
    implementation files('../../sami_core_tob_release/sdk/pub/android/aar/audiosdk-release.aar')
}

二、增加依赖库

  1. libc++系统库

需要在Android工程APP的build.gradle中增加依赖,此步骤目的是编译app包含aar中包含的libc++_shared.so

implementation files('../../../dep_libs/cpp_shared-21.0.0-sami.aar')
  1. 网络库

注意

如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节

  • ttnet
    • boringssl-so-1.0.9.aar
    • cronet-4.0.72.1-tob.aar
    • cronet-so-4.0.72.1-tob.aar
    • ttnet-4.0.72.1-tob.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.** { *;}

android-native

一、导入库、使用

根据实际修改INTERFACE_INCLUDE_DIRECTORIESIMPORTED_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"   //增加头文件

二、增加依赖库

  1. 网络库

注意

如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节

  • ttnet
    • boringssl-so-1.0.9.aar
    • cronet-4.0.72.1-tob.aar
    • cronet-so-4.0.72.1-tob.aar
    • ttnet-4.0.72.1-tob.aar

依赖的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());
  ...
}

三、把库打包进apk

Android Gradle 插件 4.0 之前需要增加sourceSets,4.0已经因为cmake IMPORTED了库,不需要另外设置。可以查看google官方解释

sourceSets{
    main{
        jniLibs.srcDirs = ['libs/samicore/libs']
    }
}

mac-native

一、导入库、使用

在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"

二、增加依赖库

  1. 网络库

注意

如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节

  • ttnet : libsscronet.dylib

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)

linux

一、导入库、使用

在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"  //增加头文件
//调用具体函数

windows

一、导入库、使用

根据实际需要修改是使用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"  //增加头文件
//调用具体函数

二、增加依赖库

  1. 网络库

注意

如果使用的是带在线功能的版本,需要增加多相关的网络库依赖,离线版本忽略这一节

  • ttnet :sscronet.dll

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)