2022.6.30 更新:鉴于老有人问我移动端怎么编译,最近也正好没找到工作,抽时间搞定了android的编译顺便还写了个android的demo。至于IOS端后面有空继续也搞一下编译和demo,到时候再更新。
虽然我自己搞的这个东西不是特别多人用,不过偶尔还是有人问我怎么编译。所以这里详细说明一下工程的编译方法和过程。
声波SDK源码地址: 源码链接
声波SDK基本技术原理概述:原理概述
首先说明声波的代码本身不依赖平台,windows、linux和android可以直接编译,IOS端暂时没有支持,熟悉IOS上编译c/c++的大佬可以使用xcode将代码带入编译试试。
一. 相关工具准备
windows:
1.安装git
2.安装Python2.7 (一定得是2.7,代码不依赖python,只是编译需要)
3.VS2015或者VS2013,如果你是其他版本的VS,可以试试我后面说的方法看看能不能生成VS的工程文件,不行就得另想办法了,比如高版本的VS也是可以打开低版本的工程文件的,这可能也是一个方法。本文中使用的是VS2015.
linux:
1.安装git
2.安装Python2.7 (一定得是2.7,代码不依赖python,只是编译需要)
3.gcc、g++ 或者其他的gcc编译器如交叉编译器。
Android:
1.安装git
2.安装android studio,建议2021.1.1版本以上。
二.下载代码
安装的git命令行工具的,命令行输入下面指令就会在命令行当前目录下载下源码。
git clone GitHub - luguocfw/WaveChannel
没安装的浏览器输入GitHub - luguocfw/WaveChannel,点击”clone or download“按钮再点击“download ZIP”就行,如图:
同样的方法把链接:GitHub - luguocfw/GYP-Tools: gyp tools指向的源码也下载下来,在WaveChannel源码目录下新建名叫tools的文件夹,将GYP-Tools解压到tools目录下,如图:
三.编译代码
1.windows端:
(1)如果用VS2013或其他版本的,可以在WaveChannel源码根目录下的build_windows.bat中在第5行之后添加一行:set GYP_MSVS_VERSION=xxxx (xxxx: 2013、2015或者其他的),2013和2015我亲测可以,其他的我没试过。比如用VS2013的添加如下内容:
搞定之后在dos命令行中将命令行上的目录切换到WaveChannel源码的根目录,然后执行build_windows.bat 回车(对于用git的此过程会下载GYP-Tools工具,保持联网)。执行完后再源码跟目录下会产生VS工程文件相关文件,如图:
(2)双击wave_trans.sln文件打开生成的VS工程,具体VS怎么使用这里不做叙述。主要说一下需要用到各个项目:
libwavetrans : 声波SDK的库文件生成项目。
wave_tran_send:声波发送端的demo。将要传输的数据编码成PCM音频数据,存到文件当中。
wave_tran_recv:声波接收端的demo,从pcm文件中读取音频数据,将音频数据中的数据解码出来。(为了demo简单就通过读写文件来代替声音的传输,实际使用的时候,发送端应该是将编码的音频通过扬声器播出来,接收端从麦克风采集音频然后解码出数据)
其他的项目不用管,我之前调试的时候用的。
2.linux端
(1)如果不是使用系统原生gcc的,如交叉编译器的。需要在源码根目录下的build_linux.sh文件中的第16行后指定编译器,例如arm-linux-gcc编译器则这么添加:
(3)在命令行中执行./build_linux.sh,(对于用git的此过程会下载GYP-Tools工具,保持联网)执行完后会在源码根目录下生成Makefile文件和其他相关文件。
(4)命令行执行 make 指令开始编译,编译结束后会在源码根目录下的out/Default目录和它的子目录下生成libwavetrans.a、wave_tran_recv和 wave_tran_send。这三个东西具体的用途由上 三.1.(2) 所述。
3.Android端
(1)打开android studio
(2)File -> Open... -> 选择WaveChannel工程目录下的android文件夹。点击OK。
(3)打开工程后如下
工程有两个module,wcdemo是demo应用,wavechannel是声波的sdk。
点击Sync Project with Gradle Files,成功后点击MakeProject编译工程
至此,WaveChannel的编译完成。