采集
本章节主要介绍音频数据采集相关的功能。默认是SDK接管采集,开发者也可以选择自己控制采集也就是自定义音频数据输入。Unity SDK目前仅支持设备音频的采集
遍历设备列表
API介绍
遍历指定类型设备,获取系统中所有该类型设备的名称。目前只支持摄像头设备的获取。
API原型
public static NIMDeviceInfoList GetDeviceList(NIMDeviceType type)
File: NIMDeviceAPI.cs
参数说明
参数 | 类型 | 说明 |
---|---|---|
type | NIMDeviceType | 设备类型,见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有效