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


声明:本文转载自https://my.oschina.net/u/1462828/blog/1824253,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

温馨提示:

本博客不是从零开始的文章,也不是什么高手精贴,只是一个菜鸡踩坑记录贴,建议懂得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目录下

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

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

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

步骤4:修改代码

1、看大神的说法:

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

步骤5:编辑CMakeLists.txt文件

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

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

 

 

 

 

 

本文发表于2018年06月05日 12:00
(c)注:本文转载自https://my.oschina.net/u/1462828/blog/1824253,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1943 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1