soundtouch android,Android studio NDK + CMake 编译SoundTouch实现wav格式音频的变速、变调功能...

温馨提示:

本博客不是从零开始的文章,也不是什么高手精贴,只是一个菜鸡踩坑记录贴,建议懂得NDK+CMake流程的人观看,若是从零开始的,推荐先去看一下我之前跑的一个例子:

传送门在此:https://my.oschina.net/u/1462828/blog/1552937

本帖子只负责编译,具体的SoundTouch用法,还得另行专研。

目前来说的话,官方例子已经提供了setSpeed方法和setPitchSemiTones(参数是-12 到 12 )这两个方法,已经可以实现最简单的变速和变调了,本人亲测是可用的。更多的接口可参数,可以参考这个帖子:

传送门:https://blog.csdn.net/wkw1125/article/details/63807128

至于录音等实时操作的,网上随便下了一个demo,录音的时候居然崩了,估计是帖子太过久远,而我测试用的手机是8.0系统的,所以,目测这方面还有不少的坑,大家慢慢去踩吧。

帖子参考

https://blog.csdn.net/mazaiting/article/details/79708541

步骤1:下载

肯定是先下载SoundTouch了,直接去官网下最新(目前是2.0)的就好:

传送门:http://www.surina.net/soundtouch/sourcecode.html

步骤2:生成.h

复制一个SoundTouch.java并生成.h文件(详细步骤:自行百度,NDK生成.h文件)

我这里包名是com.touch,所以生成了com_touch_SoundTouch.h

将com_touch_SoundTouch.h和源码的soundtouch-jni.cpp复制到main/cpp目录下,我这里还有其他好多东西,就不放截图了。

步骤3:复制SoundTouch源码

1、main/cpp目录下创建一个文件夹,我这里命名为touch

2、将源码sourc/SoundTouch目录下的所有cpp和h的文件复制到main/cpp/touch目录下

1f41865e243216db8f6fba41c743b59c.png

3、将源码的include代码的所有h文件复制到main/cpp/touch目录下

4、将源码sourc/SoundStretch目录下的所有cpp和h的文件(main用不到)复制到main/cpp/touch目录下

所有文件复制完成之后,文件列表如图所示:

a45f9bd3144f1a5c198c938ff35272ab.png

步骤4:修改代码

1、看大神的说法:

b20f507f227e26898248136fd2448334.png

2、修改soundtouch-jni.cpp里面的引用SoundTouch.h和WavFile.h这两个头文件的代码和引用com_touch_SoundTouch.h,删掉再导入就好了,反正用CMake是有代码提示的,导入之后如下:

8b0df99f9ace053d88caa49cadf13b69.png

步骤5:编辑CMakeLists.txt文件

全部文件我就不贴出来了,贴关键点就好了,看图

d063f5c404531db07ad36b8d78560ee0.png

编译一下,如果没有报错的话,应该会自动生成一个名为libsoundtouch.so的文件,当然不会在jniLibs里面出现,可以打个apk出来,用压缩软件打开apk,找到lib文件夹,应该可以在里面找到这个libsoundtouch.so文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值