采集

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

遍历设备列表

API介绍

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

API原型

public static NIMDeviceInfoList GetDeviceList(NIMDeviceType type)

File: NIMDeviceAPI.cs

参数说明

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

返回值说明

NIMDeviceInfoList 设备属性列表

示例

NIMDeviceInfoList devices = DeviceAPI.GetDeviceList((NIMDeviceType)type);

特殊说明

该接口目前在Windows PC平台下有效

启动设备

API介绍

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

API原型

public static void StartDevice(NIMDeviceType type, string devicePath, uint fps, NIMStartDeviceJsonEX StartDeviceInfo,StartDeviceResultHandler handler)

File: NIMDeviceAPI.cs

参数说明

参数 类型 说明
type NIMDeviceType 设备类型,见NIMDeviceType
devicePath string 设备路径对应kNIMDevicePath
fps unsigned int 无效
StartDeviceInfo NIMStartDeviceJsonEX 启动设备json封装类
handler StartDeviceResultHandler 结果回调

返回值说明

无返回值。

示例

void OnStartDeviceResultCallback(NIMDeviceType type, bool ret)
{

}

void TestNimStartDevice(NIMDeviceType type,string devicePath)
{
    DeviceAPI.StartDevice(type, devicePath, 0, null, OnStartDeviceResultCallback);
}

特殊说明

在Android,ios平台下type为DeviceTypeAudioOut,接口有效

结束设备

API介绍

结束设备

API原型

public static void EndDevice(NIMDeviceType type)

File: NIMDeviceAPI.cs

参数说明

参数 类型 说明
type NIMDeviceType 设备类型,见NIMDeviceDef.cs

返回值说明

无返回值。

示例

void TestEndVchatDevice()
{
    DeviceAPI.EndDevice(NIMDeviceType.kNIMDeviceTypeAudioIn);
    DeviceAPI.EndDevice(NIMDeviceType.kNIMDeviceTypeAudioOut);
    DeviceAPI.EndDevice(NIMDeviceType.kNIMDeviceTypeAudioOutChat);
}

特殊说明

在Android,ios平台下type为DeviceTypeAudioOut,接口有效

自定义音频数据输入

API介绍

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

API原型

public static bool CustomAudioData(ulong time, IntPtr data, uint size, NIMCustomAudioDataInfo info)

File:NIMDeviceAPI.cs

参数说明

参数 类型 说明
time ulong 无效参数
data IntPtr 音频数据,pcm格式。
size uint data的数据长度。
info NIMCustomAudioDataInfo 拓展json封装类

返回值说明

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

示例

void DemoTestCustomData(bool custom_audio)
{
     VChatAPI.SetCustomData(custom_audio, false, "", OnSetCustomDataCallback);
}
public void OnReceiveAudioDataCallback(ulong time, IntPtr data, uint size, int rate)
{
    //将收到的数据回传,用来测试自定义数据
    NIMCustomAudioDataInfo info = new NIMCustomAudioDataInfo();
    info.SampleBit = 16;//采样位深都为16
    info.SampleRate = rate;
    DeviceAPI.CustomAudioData(time, data, size, info);
}
特殊说明

调用该接口前应调用NIMVChatAPI.SetCustomData接口将自定义音频数据开启

扬声器

开启扬声器

API介绍

设置扬声器 android,ios有效

API原型

public static void SetSpeaker(bool speaker_on)

File: NIMDeviceAPI.cs

参数说明
参数 类型 说明
speaker_on bool True:扬声器开启
示例
void DemoTestSpeaker(bool speakon)
{
      DeviceAPI.SetSpeaker(speakon);
}
特殊说明

该接口Android,ios有效

扬声器状态

API介绍

获取扬声器状态,Android,ios平台下有效

API原型

public static bool SpeakerEnabled()

File: NIMDeviceAPI.cs

返回值说明

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

示例
void DemoTestSpeakerEnabled()
{
    bool speakon = DeviceAPI.SpeakerEnabled();
}
特殊说明

该接口Android,ios有效

麦克风

开启麦克风静音

API介绍

设置麦克风静音状态 Android,ios有效

API原型

public static void SetMicrophoneMute(bool mute)

File: NIMDeviceAPI.cs

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

该接口Android,ios有效

麦克风静音状态

API介绍

获取扬声器状态,Android,ios平台下有效

API原型

public static bool IsMicroPhoneMute()

File: NIMDeviceAPI.cs

返回值说明

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

示例
void DemoTestMicrophoneMute()
{
    bool microphone_mute = DeviceAPI.IsMicroPhoneMute();;
}
特殊说明

该接口Android,ios有效

混音

开启混音

API介绍

开始混音 Android,ios有效

API原型

public static void StartAudioMixing(String filePath, bool loopback, bool replace, int cycle, float volume)

File: NIMDeviceAPI.cs

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

该接口Android,ios有效

混音暂停

API介绍

混音暂停 Android,ios有效

API原型

public static bool PauseAudioMixing()

File: NIMDeviceAPI.cs

返回值说明

true:接口调用成功

示例
void DemoPauseAudioMixing()
{
     bool ret=DeviceAPI.PauseAudioMixing();
}
特殊说明

该接口Android,ios有效

混音恢复播放

API介绍

恢复混音播放 Android,ios有效

API原型

public static bool ResumeAudioMixing()

File: NIMDeviceAPI.cs

返回值说明

true:接口调用成功

示例
void DemoResumeAudioMixing()
{
     bool ret = DeviceAPI.ResumeAudioMixing();
}
特殊说明

该接口Android,ios有效

混音结束播放

API介绍

结束混音播放 Android,ios有效

API原型

public static bool StopAudioMixing()

File: NIMDeviceAPI.cs

返回值说明

true:接口调用成功

示例
void DemoStopAudioMixing()
{
     bool ret = DeviceAPI.StopAudioMixing();
}
特殊说明

该接口Android,ios有效

设置混音音量

API介绍

设置混音音量 Android,ios有效

API原型

public static bool SetAudioMixingVolume(float volume)

File: NIMDeviceAPI.cs

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

该接口Android,ios有效

设置耳返音量

API介绍

设置耳返音量 Android,ios有效

API原型

public static bool SetPlayCapturedAudioVolume(float volume)

File: NIMDeviceAPI.cs

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

该接口Android,ios有效