音视频前处理

本章节主要介绍网易云提供的各种音视频前处理功能。前处理介于采集和编码之间,按照数据类型分类,可以分为音频前处理和视频前处理,音频前处理包括降噪、回音消除、人声检测、自动增益等等,视频前处理包括美颜、磨皮、设置对比度、镜像、水印等。目前网易云Cocos SDK只支持音频前处理,提供音频采集数据的回调功能,开发者可以利用音频采集数据的回调功能,实现自定义的音视频数据前处理,包括接入第三方变声等。

音频前处理

监听音频数据

API介绍

监听音频数据,此接口Cocos Window PC平台有效(可以不监听,通过启动设备kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放)

API原型

static void SetAudioDataCb(bool capture, nim_vchat_audio_data_cb_func cb);

File: nim_cpp_vchat.h

参数说明
参数 类型 说明
capture bool true表示监听麦克风采集数据,false表示监听通话中对方音频数据。
cb function 结果回调,见nim_device_def.h。
示例
void demo_test_nim_vchat_set_audio_data_cb()
{    
    auto capture_audio_data_cb = [](std::uint64_t time, const char *data, std::uint32_t size, const char *json_extension, const void *user_data)
    {

    };
    auto receive_audio_data_cb = [](std::uint64_t time, const char *data, std::uint32_t size, const char *json_extension, const void *user_data)
    {

    };
    //设置数据回调
    nim::VChat::SetAudioDataCb(false, receive_audio_data_cb);
    nim::VChat::SetAudioDataCb(true, capture_audio_data_cb);
}
特殊说明

设置的回调函数是异步回调,此接口Cocos Window PC平台有效

同步监听音频数据

API介绍

同步监听音频数据

API原型

static void SetAudioDataSyncCb(nim_vchat_audio_data_sync_cb_func cb);

File: nim_cpp_vchat.h

参数说明
参数 类型 说明
cb function 结果回调,数据同步返回.见nim_device_def.h。
示例
std::uint64_t AudioDataSyncCb(const std::int16_t* data, std::uint64_t size, double sample_rate, const void* user_data)
{

}

void demo_test_nim_vchat_set_audio_data_cb()
{    
    nim::VChat::SetAudioDataSyncCb(AudioDataSyncCb);
}
特殊说明

设置的回调函数是同步回调,此接口Cocos Android,ios平台有效