NIM PC Cross Platform SDK
nim_device.h File Reference

音视频设备 接口头文件,使用前请先调用音视频初始化接口 More...

#include "nim_device_def.h"
#include "public_defines.h"

Go to the source code of this file.

Functions

NIM_SDK_DLL_API void nim_vchat_start_device (enum NIMDeviceType type, const char *device_path, unsigned fps, const char *json_extension, nim_vchat_start_device_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_end_device (enum NIMDeviceType type, const char *json_extension)
 
NIM_SDK_DLL_API void nim_vchat_set_audio_data_cb (bool capture, const char *json_extension, nim_vchat_audio_data_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API bool nim_vchat_custom_audio_data (uint64_t time, const char *data, uint32_t size, const char *json_extension)
 
NIM_SDK_DLL_API bool nim_vchat_custom_video_data (uint64_t time, const char *data, uint32_t size, uint32_t width, uint32_t height, const char *json_extension)
 
NIM_SDK_DLL_API void nim_vchat_set_video_data_cb (bool capture, const char *json_extension, nim_vchat_video_data_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_enum_device_devpath (enum NIMDeviceType type, const char *json_extension, nim_vchat_enum_device_devpath_sync_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_set_audio_process_info (bool aec, bool ns, bool vad)
 
NIM_SDK_DLL_API void nim_vchat_set_audio_volumn (unsigned char volumn, bool capture)
 
NIM_SDK_DLL_API unsigned char nim_vchat_get_audio_volumn (bool capture)
 
NIM_SDK_DLL_API bool nim_vchat_accompanying_sound (unsigned char id, uint64_t time, const char *data, unsigned int size, unsigned int rate, unsigned int channels, const char *json_extension)
 
NIM_SDK_DLL_API void nim_vchat_set_audio_data_cb_ex (int type, const char *json_extension, nim_vchat_audio_data_cb_func_ex cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_add_device_status_cb (enum NIMDeviceType type, nim_vchat_device_status_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_remove_device_status_cb (enum NIMDeviceType type)
 
NIM_SDK_DLL_API void nim_vchat_start_extend_camera (const char *id, const char *device_path, uint32_t fps, const char *json_extension, nim_vchat_start_device_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_stop_extend_camera (const char *id, const char *json_extension)
 
NIM_SDK_DLL_API void nim_vchat_set_audio_input_auto_volumn (bool auto_volumn)
 
NIM_SDK_DLL_API bool nim_vchat_get_audio_input_auto_volumn ()
 
NIM_SDK_DLL_API void nim_vchat_preload_effect (int id, const char *path, const char *json_extension, nim_vchat_audio_effect_opt_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_play_effect (int id, int loop_count, const char *json_extension, nim_vchat_audio_effect_opt_cb_func cb, const void *user_data)
 
NIM_SDK_DLL_API void nim_vchat_stop_effect (int id, const char *json_extension, nim_vchat_audio_effect_opt_cb_func cb, const void *user_data)
 

Detailed Description

音视频设备 接口头文件,使用前请先调用音视频初始化接口

Author
gq
Date
2015/4/30

Function Documentation

◆ nim_vchat_accompanying_sound()

bool nim_vchat_accompanying_sound ( unsigned char  id,
uint64_t  time,
const char *  data,
unsigned int  size,
unsigned int  rate,
unsigned int  channels,
const char *  json_extension 
)

NIM VCHAT 自定义音频伴音数据接口,不需要打开自定义数据开关, 采样时间必须为10ms的整数倍, 采样位深只支持16

Parameters
[in]id伴音数据id
[in]time时间毫秒级
[in]data音频数据pcm格式
[in]sizedata的数据长度
[in]rate音频采样频
[in]channels声道数
[in]json_extension扩展
Returns
bool true 调用成功,false 调用失败

◆ nim_vchat_add_device_status_cb()

void nim_vchat_add_device_status_cb ( enum NIMDeviceType  type,
nim_vchat_device_status_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 添加设备监听(摄像头和麦克风,伴音hook) 注意监听设备后底层会定时检查设备情况,在不需要监听后请移除

Parameters
[in]typeNIMDeviceType(kNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo、kNIMDeviceTypeAudioHook有效) 见nim_device_def.h
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_custom_audio_data()

void nim_vchat_custom_audio_data ( uint64_t  time,
const char *  data,
uint32_t  size,
const char *  json_extension 
)

NIM VCHAT 自定义音频数据接口, 采样位深只支持16或32,[Linux sdk只支持16] kNIMDeviceSampleRate支持8000,16000,32000,44100

Parameters
[in]time时间毫秒级
[in]data音频数据pcm格式
[in]sizedata的数据长度
[in]json_extension扩展Json string kNIMDeviceSampleRate采样频和kNIMDeviceSampleBit采样位深 默认如{"sample_rate":16000, "sample_bit":16}
Returns
bool true 调用成功,false 调用失败

◆ nim_vchat_custom_video_data()

bool nim_vchat_custom_video_data ( uint64_t  time,
const char *  data,
uint32_t  size,
uint32_t  width,
uint32_t  height,
const char *  json_extension 
)

NIM VCHAT 自定义视频数据接口

Parameters
[in]time时间毫秒级
[in]data视频数据, 默认为yuv420格式
[in]sizedata的数据长度
[in]width画面宽度,必须是偶数
[in]height画面高度,必须是偶数
[in]json_extension扩展Json string,kNIMVideoSubType视频数据格式(缺省为kNIMVideoSubTypeI420)
Returns
bool true 调用成功,false 调用失败

◆ nim_vchat_end_device()

void nim_vchat_end_device ( enum NIMDeviceType  type,
const char *  json_extension 
)

NIM VCHAT DEVICE 结束设备

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
[in]json_extension无效的扩展字段
Returns
void 无返回值

◆ nim_vchat_enum_device_devpath()

void nim_vchat_enum_device_devpath ( enum NIMDeviceType  type,
const char *  json_extension,
nim_vchat_enum_device_devpath_sync_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 遍历设备 [Linux平台暂时只支持kNIMDeviceTypeVideo]

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
[in]json_extension无效的扩展字段
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_get_audio_input_auto_volumn()

bool nim_vchat_get_audio_input_auto_volumn ( )

NIM VCHAT DEVICE 获取是否自动调节麦克风音量

Returns
bool true 标识麦克风音量自动调节,false 标识麦克风音量不调节,这时nim_vchat_set_audio_volumn中麦克风音量参数起效

◆ nim_vchat_get_audio_volumn()

unsigned char nim_vchat_get_audio_volumn ( bool  capture)

NIM VCHAT DEVICE 获取nim_vchat_set_audio_volumn中设置的音量

Parameters
[in]capturetrue 标识获取麦克风音量,false 标识获取播放音量
Returns
unsigned char 音量值

◆ nim_vchat_play_effect()

void nim_vchat_play_effect ( int  id,
int  loop_count,
const char *  json_extension,
nim_vchat_audio_effect_opt_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 播放音效,由kNIMDeviceTypeAudioOutChat播放

Parameters
[in]id音效id
[in]loop_count播放次数,0无效,小于零无限循环
[in]json_extension扩展
[in]cb结果回调见nim_device_def.h;异步回调操作结果,成功则在播放结束后回调;当音效未加载或者前一次同一个id的音效未播放完成,则失败
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_preload_effect()

void nim_vchat_preload_effect ( int  id,
const char *  path,
const char *  json_extension,
nim_vchat_audio_effect_opt_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 预加载音效文件(空路径时为移除),音效个数限制5个,时长限制10秒;暂时只支持wav和mp3格式

Parameters
[in]id音效id,重复时覆盖
[in]path音效文件的本地路径,如果填空为移除音效
[in]json_extension扩展
[in]cb结果回调见nim_device_def.h;异步回调操作结果
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_remove_device_status_cb()

void nim_vchat_remove_device_status_cb ( enum NIMDeviceType  type)

NIM VCHAT DEVICE 移除设备监听(摄像头和麦克风,伴音hook)

Parameters
[in]typeNIMDeviceType(kNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo有效) 见nim_device_def.h
Returns
void 无返回值

◆ nim_vchat_set_audio_data_cb()

void nim_vchat_set_audio_data_cb ( bool  capture,
const char *  json_extension,
nim_vchat_audio_data_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 监听音频数据(可以不监听,通过启动设备kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放)

Parameters
[in]capturetrue 标识监听麦克风采集数据,false 标识监听通话中对方音频数据
[in]json_extension扩展Json string:kNIMDeviceSampleRate(要求返回的音频数据为指定的采样频,缺省为0使用默认采样频)
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_set_audio_data_cb_ex()

void nim_vchat_set_audio_data_cb_ex ( int  type,
const char *  json_extension,
nim_vchat_audio_data_cb_func_ex  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 监听音频数据扩展接口

Parameters
[in]type指定NIMAudioDataCbType,监听伴音数据
[in]json_extension参考NIMAudioDataCbType的说明
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_set_audio_input_auto_volumn()

void nim_vchat_set_audio_input_auto_volumn ( bool  auto_volumn)

NIM VCHAT DEVICE 设置麦克风音量自动调节

Parameters
[in]auto_volumntrue 标识麦克风音量自动调节,false 标识麦克风音量不调节,这时nim_vchat_set_audio_volumn中麦克风音量参数起效
Returns
void 无返回值

◆ nim_vchat_set_audio_process_info()

void nim_vchat_set_audio_process_info ( bool  aec,
bool  ns,
bool  vad 
)

NIM VCHAT DEVICE 设置底层针对麦克风采集数据处理开关接口,默认全开(此接口是全局接口,在sdk初始化后设置一直有效)

Parameters
[in]aectrue 标识打开回音消除功能,false 标识关闭
[in]nstrue 标识打开降噪功能,false 标识关闭
[in]vadtrue 标识打开人言检测功能,false 标识关闭
Returns
void 无返回值

◆ nim_vchat_set_audio_volumn()

void nim_vchat_set_audio_volumn ( unsigned char  volumn,
bool  capture 
)

NIM VCHAT DEVICE 设置音量 默认255,且音量均由软件换算得出,设置麦克风音量自动调节后麦克风音量参数无效

Parameters
[in]volumn结果回调见nim_device_def.h
[in]capturetrue 标识设置麦克风音量,false 标识设置播放音量
Returns
void 无返回值

◆ nim_vchat_set_video_data_cb()

void nim_vchat_set_video_data_cb ( bool  capture,
const char *  json_extension,
nim_vchat_video_data_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 监听视频数据

Parameters
[in]capturetrue 标识监听采集数据(包括辅助摄像头数据),false 标识监听通话中对方视频数据
[in]json_extension扩展Json string:kNIMVideoSubType(缺省为kNIMVideoSubTypeARGB)
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_start_device()

void nim_vchat_start_device ( enum NIMDeviceType  type,
const char *  device_path,
unsigned  fps,
const char *  json_extension,
nim_vchat_start_device_cb_func  cb,
const void *  user_data 
)

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

Parameters
[in]typeNIMDeviceType 见nim_device_def.h
[in]device_path设备路径对应kNIMDevicePath,如果是kNIMDeviceTypeAudioHook,对应播放器本地全路径 [Linux平台暂时只支持视频采集]
[in]fps摄像头为采样频率(一般取30),其他NIMDeviceType无效(麦克风采样频率由底层控制,播放器采样频率也由底层控制)
[in]json_extension打开摄像头是允许设置 kNIMDeviceWidth 和 kNIMDeviceHeight,最后取最接近设置值的画面模式
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_start_extend_camera()

void nim_vchat_start_extend_camera ( const char *  id,
const char *  device_path,
uint32_t  fps,
const char *  json_extension,
nim_vchat_start_device_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 启动辅助的摄像头,摄像头数据通过nim_vchat_set_video_data_cb设置采集回调返回,不直接通过视频通话发送给对方,并且不参与设备监听检测

Parameters
[in]id摄像头标识,用于开关及数据回调时的对应,不能为空。(同一id下设备将不重复启动,如果设备device_path不同会先关闭前一个设备开启新设备)
[in]device_path设备路径对应kNIMDevicePath
[in]fps摄像头为采样频率
[in]json_extension打开摄像头是允许设置 kNIMDeviceWidth 和 kNIMDeviceHeight,并取最接近设置值的画面模式
[in]cb结果回调见nim_device_def.h
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_stop_effect()

void nim_vchat_stop_effect ( int  id,
const char *  json_extension,
nim_vchat_audio_effect_opt_cb_func  cb,
const void *  user_data 
)

NIM VCHAT DEVICE 结束播放音效

Parameters
[in]id音效id
[in]json_extension扩展
[in]cb结果回调见nim_device_def.h;异步回调操作结果
[in]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
Returns
void 无返回值

◆ nim_vchat_stop_extend_camera()

void nim_vchat_stop_extend_camera ( const char *  id,
const char *  json_extension 
)

NIM VCHAT DEVICE 结束辅助摄像头

Parameters
[in]id摄像头标识id,如果为空,则关闭所有辅助摄像头
[in]json_extension无效的扩展字段
Returns
void 无返回值