采集

本章节主要介绍音频数据采集相关的功能。默认是SDK接管采集,开发者也可以选择自己控制采集也就是自定义音频数据输入。 目前网易云Cocos SDK仅支持音频数据采集

遍历设备列表

API介绍

遍历指定类型设备,获取系统中所有该类型设备的名称。目前只支持摄像头设备的获取。

API原型

static void EnumDeviceDevpath(nim::NIMDeviceType type, EnumDeviceCallback cb);

File: nim_cpp_vchat.h

参数说明

参数 类型 说明
type NIMDeviceType 设备类型,见NIMDeviceType
cb EnumDeviceCallback 结果回调
枚举定义 说明
kNIMDeviceTypeAudioIn 0 麦克风设备
DeviceTypeAudioOut 1 听筒设备用于播放本地采集音频数据,麦克风试音,即耳返
DeviceTypeAudioOutChat 2 听筒设备用于通话音频数据,由DeviceTypeAudioOut遍历得到设备

返回值说明

NIMDeviceInfoList 设备属性列表

示例

auto cb = [=](bool ret, enum NIMDeviceType type, const char *json_extension)
{

};
nim::VChat::EnumDeviceDevpath(type, cb);

####特殊说明 此接口仅支持Cocos Windows PC平台

启动设备

API介绍

启动设备。同一NIMDeviceType下设备将不重复启动,不同的设备会先关闭前一个设备开启新设备。

API原型

static void StartDevice(nim::NIMDeviceType type, const std::string& device_path, unsigned fps, int width, int height, StartDeviceCallback cb)

File: nim_cpp_vchat.h

参数说明

参数 类型 说明
type NIMDeviceType 设备类型,见NIMDeviceType
device_path string 设备路径对应kNIMDevicePath
fps unsigned int 无效
width int 无效
height int 无效
cb StartDeviceCallback 结果回调

返回值说明

无返回值。

示例

auto cb = [=](enum NIMDeviceType type, bool ret, const char *json_extension)
{

};
VChat::StartDevice(kNIMDeviceTypeAudioIn, "", 0, 0, 0, cb);
VChat::StartDevice(kNIMDeviceTypeAudioOutChat,"", 0, 0, 0, cb);

####特殊说明 Android,ios平台下该接口type为DeviceTypeAudioOut时有效

结束设备

API介绍

结束设备

API原型

static void EndDevice(nim::NIMDeviceType type);

File: nim_cpp_vchat.h

参数说明

参数 类型 说明
type NIMDeviceType 设备类型,见nim_device_def.h

返回值说明

无返回值。

示例

void TestEndVchatDevice()
{
    VChat::EndDevice(kNIMDeviceTypeAudioIn);
    VChat::EndDevice(kNIMDeviceTypeAudioOut);
    VChat::EndDevice(kNIMDeviceTypeAudioOutChat);
}

####特殊说明 Android,ios平台下该接口type为DeviceTypeAudioOut时有效

自定义音频数据输入

API介绍

自定义音频数据接口, 采样位深只支持16,如果是浮点型数据先转成整型。kNIMDeviceSampleRate支持8000,16000,32000,44100。

API原型

static bool CustomAudioData(uint64_t time, const char* data, uint32_t size, std::string json_extension);

File:nim_cpp_vchat.h

参数说明

参数 类型 说明
time uint64_t 无效参数
data char * 音频数据,pcm格式。
size uint32_t data的数据长度。
json_extension string 扩展Json string kNIMDeviceSampleRate采样频和kNIMDeviceSampleBit采样位深

返回值说明

调用成功返回true,调用失败返回false。

示例

public void DemoTestCustomData()
{
    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::CustomAudioData(time, data, size, json_extension);
    };
    nim::VChat::SetAudioDataCb(false, receive_audio_data_cb);
    nim::VChat::SetAudioDataCb(true, capture_audio_data_cb);
}
特殊说明

调用该接口前应调用nim::VChat::SetCustomData接口将自定义音频数据开启,该接口在Windows PC平台下有效

扬声器

开启扬声器

API介绍

设置扬声器,该接口在Android,ios平台下有效

API原型

static void SetSpeaker(bool speaker_on);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
speaker_on bool true:扬声器开启
示例
void DemoTestSpeaker(bool speakon)
{
     nim::VChat::SetSpeaker(speakon)
}
特殊说明

该接口在Android,ios平台下有效

扬声器状态

API介绍

获取扬声器状态,该接口在Android,ios平台下有效

API原型

static bool IsSpeakeEnabled();

File:nim_cpp_vchat.h

返回值说明

扬声器已开启返回true,否则返回false。

示例
void DemoTestSpeakerEnabled()
{
    bool speak_on = nim::VChat::IsSpeakeEnabled();
}
特殊说明

该接口在Android,ios平台下有效

麦克风

开启麦克风静音

API介绍

设置麦克风静音状态,该接口在Android,ios平台下有效

API原型

static void SetMicrophoneMute(bool mute);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
mute bool true:麦克风静音开启
示例
void DemoTestMicrophoneMute(bool microphone_mute)
{
     nim::VChat::SetMicrophoneMute(microphone_mute);
}
特殊说明

该接口在Android,ios平台下有效

麦克风静音状态

API介绍

获取扬声器状态,该接口在Android,ios平台下有效

API原型

static bool IsMicrophoneMute();

File:nim_cpp_vchat.h

返回值说明

麦克风静音已开启返回true,否则返回false。

示例
void DemoTestMicrophoneMute()
{
    bool microphone_mute = nim::VChat::IsMicrophoneMute();
}
特殊说明

该接口在Android,ios平台下有效

混音

开启混音

API介绍

开始混音,该接口在Android,ios平台下有效

API原型

static bool StartAudioMixing(const std::string filePath, bool loopback, bool replace, int cycle, float volume)

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
filePath std::string 可播放文件地址
loopback bool 是否循环播放 true:开启
replace bool 是否替换采集声音数据,true:开启
cycle int 循环次数
volume float 混音音量值 [0f-1f]
示例
void DemoStartAudioMixing(std::string filePath, bool loopback, bool replace, int cycle, float volume)
{
    nim::VChat::StartAudioMixing(filePath, loopback, replace, cycle, volume);
}
特殊说明

该接口在Android,ios平台下有效

混音暂停

API介绍

混音暂停,该接口在Android,ios平台下有效

API原型

static bool PauseAudioMixing()

File:nim_cpp_vchat.h

返回值说明

true:接口调用成功

示例
void DemoPauseAudioMixing()
{
     bool ret=nim::VChat::PauseAudioMixing();
}
特殊说明

该接口在Android,ios平台下有效

混音恢复播放

API介绍

恢复混音播放,该接口在Android,ios平台下有效

API原型

static bool PauseAudioMixing();

File:nim_cpp_vchat.h

返回值说明

true:接口调用成功

示例
void DemoResumeAudioMixing()
{
     bool ret = nim::VChat::ResumeAudioMixing();
}
特殊说明

该接口在Android,ios平台下有效

混音结束播放

API介绍

结束混音播放,该接口在Android,ios平台下有效

API原型

static bool StopAudioMixing();

File:nim_cpp_vchat.h

返回值说明

true:接口调用成功

示例
void DemoStopAudioMixing()
{
     bool ret = nim::VChat::StopAudioMixing();
}
特殊说明

该接口在Android,ios平台下有效

设置混音音量

API介绍

设置混音音量,该接口在Android,ios平台下有效

API原型

static bool SetAudioMixingVolume(float volume);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
volume float 混音音量值 [0f-1f]
示例
void DemoSetAudioMixingVolume(float volume)
{
     nim::VChat::SetAudioMixingVolume(volume);
}
特殊说明

该接口在Android,ios平台下有效

设置耳返音量

API介绍

设置耳返音量,该接口在Android,ios平台下有效

API原型

static bool SetPlayCapturedAudioVolume(float volume);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
volume float 混音音量值 [0f-1f]
示例
void DemoSetPlayCapturedAudioVolume(float volume)
{
     nim::VChat::SetPlayCapturedAudioVolume(volume);
}
特殊说明

该接口在Android,ios平台下有效