-
Notifications
You must be signed in to change notification settings - Fork 209
audio_effect_define
zanxiaofei edited this page Jan 25, 2018
·
3 revisions
SDK提供对原始的音频数据进行处理,来产生不同的音频滤镜,包括内置滤镜和自定义滤镜,相关使用详细参考音频滤镜
其中内置滤镜中提供了KSYAudioEffectFilter来提供变声和变调的动能。
SDK除了提供已经调试好的几种变声和变调类型外,在ver5.0.0及以上版本还提供了接口,方便用户自定义音效。
SDK集成的音效依赖参考的是SoX,SoX的详细介绍,移步官网http://sox.sourceforge.net/Main/HomePage
在创建KSYAudioEffectFilter实例时,设置音频效果效果类型为KSYAudioEffectFilter.Audio_EFFECT_TYPE_USER_DEFINE,即可通过KSYAudioEffectFilter来自定义音效
1、添加音频效果
使用KSYAudioEffectFilter的addEffect接口添加音频效果
/**
* 添加音频效果
* @param name 特效名称,比如"highpass"、"pitch"
* @param argc argv的有效数组长度
* @param argv 设置给效果的参数信息
* @throws IllegalArgumentException
*/
public void addEffect(String name, int argc, String[] argv) throws IllegalArgumentException
2、删除所有添加的效果
使用KSYAudioEffectFilter的removeEffects()接口删除之前添加的音频效果
//创建KSYAudioEffectFilter实例
KSYAudioEffectFilter effectFilter = new
KSYAudioEffectFilter(KSYAudioEffectFilter.Audio_EFFECT_TYPE_USER_DEFINE);
String[] argv1 = new String[1];
argv1[0] = String.valueOf(-100);
//添加pitch效果
effectFilter.addEffect("pitch", argv1.length, argv1);
String[] argv = new String[6];
argv[0] = "50";
argv[1] = "50";
argv[2] = "40";
argv[3] = "100";
argv[4] = "50";
argv[5] = "0";
//添加reverb效果
effectFilter.addEffect("reverb",argv.length, argv);
//将KSYAudioEffectFilter设置给SDK生效
mKSYRecordKit.getAudioFilterMgt().setFilter(effectFilter);