美文网首页
NDK—QQ变声环境搭建

NDK—QQ变声环境搭建

作者: Lypop | 来源:发表于2017-11-02 23:05 被阅读0次

说起QQ变声效果大家并不陌生,这是用的啥技术呢?其实它使用到了fmod的东西,现在我们就来研究一下变声技术

fmod 官网:https://www.fmod.com/studio

QQ截图20171102222041.png

是不是很炫,以前想都不敢想能实现这效果,现在就能实现了,来代码搞起。。

这里呢,我们先来搭建一下QQ变声效果的开发环境做一个播放声音的进而开发变声效果。

正文

image

先进入官网去下载Android的开发包,如图,我们接下来就搞这个目录里面的东西,因为是刚上手当然是低级别的,哈哈

image

我们来说一下这三个目录是啥东西,example是开发的示例文件,inc是需要引入的.h文件,lib是需要加入的jar包

好,现在我们做的仅仅是先将声音播放出来,变不变声先不管,开发环境是Eclipse,之后会介绍AS的开发步骤

进入example目录找到play_sound.cpp、inc目录导入Eclipse jni目录,play_sound.cpp需要包含common.h(因为fmod.hpp是inc里面的只需要指定一下就可以)

image

为什么还有hpp格式的文件呢?是因为在hpp格式文件里面既包含h文件的声明又包含cpp的实现,所以才命名为hpp格式,这里我们不仅要导入common.h还需要导入实现common.cpp文件

common.h

image

这里我们看到我们还需要导入common_platform.h,当然也需要导入相应的.cpp文件了

然后我们执行下面的操作生成Android.mk文件

image

接着我们导入example里面提供的MainActivity文件,记住包名不要改变,接着我们利用javah工具得到.h文件,那这.h文件让哪个文件来包含进来呢?经过查看看到common_platform.cpp里面有相应的实现代码

到这里我们还少些什么呢,那就是.so文件需要导入进来,因为作者将inc里面的声明实现都放在了so文件里面,所以需要将so文件加入jni文件里面

之后我们需要配置一下Android.mk

LOCAL_PATH := $(call my-dir)

#编译libfmod.so文件
include $(CLEAR_VARS)
LOCAL_MODULE := fmod
LOCAL_SRC_FILES := libfmod.so
include $(PREBUILT_SHARED_LIBRARY)

#编译libfmodL.so文件
include $(CLEAR_VARS)
LOCAL_MODULE := fmodL
LOCAL_SRC_FILES := libfmodL.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE    := voicer_change   #生成so文件的名字
##编译相应的cpp文件,都需要编译不让会出现找不到类的情况
LOCAL_SRC_FILES := play_sound.cpp common.cpp common_platform.cpp
LOCAL_SHARED_LIBRARIES := fmod fmodL   #编译的时候要依赖的共享库
LOCAL_LDLIBS := -llog  #打印Log
include $(BUILD_SHARED_LIBRARY)

至此我们就可以进行build了,当然会报错#include<string.h>找不到,因为需要提供C++标准库支持

image

这时候我们需要新建一个Application.mk

APP_ABI := armeabi  #编译与调试的CPU架构
APP_STL := stlport_static
APP_STL := gnustl_static  #支持 C++异常处理,标准模板块
APP_CPPFLAGS +=-std=c++11 #允许使用c++11的函数等功能

进行build还会发生so生成失败,这时候我们需要引入下面的这些路径才可以

image

前面的三个是有关jni.h jni_md.h的路径
后面的是有关C++标准库相关的路径,所以需要引用,当时就是没有引入就报了一堆错误,擦擦,所以要想build成功就需要进行引入

最后进行build,当在build成功之后不能运行,需要close project之后在open然后在运行,这样就可以运行了哦,当然在运行之前需要将声音资源加入到assets目录下面,具体的界面如下:

image

至此,QQ变声的NDK环境就搭建好了,接下来我们将在这基础上开发QQ变声的功能,O(∩_∩)O谢谢

相关文章

  • NDK—QQ变声环境搭建

    说起QQ变声效果大家并不陌生,这是用的啥技术呢?其实它使用到了fmod的东西,现在我们就来研究一下变声技术 fmo...

  • NDK与JNI

    NDK开发—仿QQ变声器Android NDK开发IPCInvoker跨进程调用Android鬼点子-通过Goog...

  • NDK—QQ变声效果实现

    上一节我们知道了怎么去搭建QQ变声所需要的一些环境,今天我们就来真正的去实现QQ变声的效果了,废话不多说,我们开始...

  • pjsip源码编译

    环境配置 搭建Android NDK(我使用的是android-ndk-r10)编译环境 搭建SWIG环境,SWI...

  • NDK开发—仿QQ变声器

    1、实现功能前的准备 这是我学习NDK的一个练手项目。虽然最后实现的结果并不是非常专业,但是确实能改变声音的音色,...

  • opencv集成opencv_contrib编译生成Androi

    1.目标和步骤 (1)环境搭建 (1.1)ndk环境---走进AndroidStudio下的NDK 问题1:发...

  • Eclipse下的NDK开发

    Android NDK开发 一、环境搭建 1、首先查看开发环境是否有NDK选项,如果没有就下载一个NDK插件,放在...

  • Android Mk Application Mk make m

    说明 这只是笔记。。。。。。。。 从0开始搭建测试环境 下载android ndk ,然后配置ndk环境变量,使n...

  • NDK实现QQ语音变声功能

    实现语音调节效果 利用fmog (官网:https://www.fmod.com/) fmog并不是开源库,是...

  • 安卓JNI精细化讲解,:环境搭建与HelloWord

    1、基础概念├──1.1、JNI├──1.2、NDK├──1.3、CMake与ndk-build2、环境搭建3、N...

网友评论

      本文标题:NDK—QQ变声环境搭建

      本文链接:https://www.haomeiwen.com/subject/msqzpxtx.html