NIM 跨平台 C++ SDK
载入中...
搜索中...
未找到
nim_device_def.h 文件参考

音视频设备 接口相关的常量函数等定义头文件 更多...

#include "public_defines.h"

浏览源代码.

类型定义

typedef void(* nim_vchat_enum_device_devpath_sync_cb_func) (bool ret, enum NIMDeviceType type, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_device_status_cb_func) (enum NIMDeviceType type, uint32_t status, const char *device_path, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_audio_data_cb_func_ex) (uint64_t time, const char *data, uint32_t size, int channels, int rate, int volume, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_start_device_cb_func) (enum NIMDeviceType type, bool ret, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_audio_data_cb_func) (uint64_t time, const char *data, uint32_t size, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_video_data_cb_func) (uint64_t time, const char *data, uint32_t size, uint32_t width, uint32_t height, const char *json_extension, const void *user_data)
 
typedef void(* nim_vchat_audio_effect_opt_cb_func) (int id, bool ret, int code, const char *json_extension, const void *user_data)
 

枚举

enum  NIMDeviceType {
  kNIMDeviceTypeAudioIn = 0 , kNIMDeviceTypeAudioOut = 1 , kNIMDeviceTypeAudioOutChat = 2 , kNIMDeviceTypeVideo = 3 ,
  kNIMDeviceTypeSoundcardCapturer = 4 , kNIMDeviceTypeAudioHook = 5
}
 
enum  NIMVideoSubType { kNIMVideoSubTypeARGB = 0 , kNIMVideoSubTypeRGB = 1 , kNIMVideoSubTypeI420 = 2 }
 
enum  NIMDeviceStatus {
  kNIMDeviceStatusNoChange = 0x0 , kNIMDeviceStatusChange = 0x1 , kNIMDeviceStatusWorkRemove = 0x2 , kNIMDeviceStatusReset = 0x4 ,
  kNIMDeviceStatusStart = 0x8 , kNIMDeviceStatusEnd = 0x10
}
 
enum  NIMAudioDataCbType { kNIMAudioDataCbTypeHook = 1 , kNIMAudioDataCbTypeHookAndMic }
 

变量

json extension params for vchat device key
static const char * kNIMDeviceName = "name"
 string 设备名称
 
static const char * kNIMDevicePath = "path"
 string 设备路径
 
static const char * kNIMDeviceSampleRate = "sample_rate"
 int32 采样频率
 
static const char * kNIMDeviceSampleBit = "sample_bit"
 int32 采样位深
 
static const char * kNIMDeviceDataUid = "uid"
 用户id int64
 
static const char * kNIMDeviceDataAccount = "account"
 用户账号 string
 
static const char * kNIMDeviceWidth = "width"
 int32 画面宽
 
static const char * kNIMDeviceHeight = "height"
 int32 画面高
 
static const char * kNIMVideoSubType = "subtype"
 int32 视频数据类型,NIMVideoSubType
 
static const char * kNIMDeviceId = "id"
 string 标识ID
 
static const char * kNIMVolumeWork = "volume_work"
 int32 大于0标识数据将使用音量参数进行换算(暂时只针对伴音数据)
 
static const char * kNIMDeviceHeadphone = "headphone"
 int 大于0时标记为耳机设备
 

详细描述

音视频设备 接口相关的常量函数等定义头文件

作者
gq
日期
2015/4/24

类型定义说明

◆ nim_vchat_audio_data_cb_func

void(* nim_vchat_audio_data_cb_func)(uint64_t time, const char *data, unsigned int size, const char *json_extension, const void *user_data)

NIM Device 音频数据监听接口

参数
[out]time时间毫秒级
[out]data音频数据pcm格式
[out]sizedata的数据长度
[out]json_extensionJson string 返回kNIMDeviceSampleRate
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_audio_data_cb_func_ex

void(* nim_vchat_audio_data_cb_func_ex)(uint64_t time, const char *data, uint32_t size, int channels, int rate, int volume, const char *json_extension, const void *user_data)

NIM Device 音频数据监听接口

参数
[out]time时间毫秒级,暂时无效
[out]data音频数据pcm格式
[out]sizedata的数据长度
[out]channels通道数
[out]rate采样频
[out]volume音量值0-100
[out]json_extension扩展
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_audio_effect_opt_cb_func

void(* nim_vchat_audio_effect_opt_cb_func)(int id, bool ret, int code, const char *json_extension, const void *user_data)

NIM Device 音效操作结果回调

参数
[out]id音效id
[out]ret操作结果
[out]code错误码
[out]json_extension扩展
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_device_status_cb_func

void(* nim_vchat_device_status_cb_func)(enum NIMDeviceType type, uint32_t status, const char *device_path, const char *json_extension, const void *user_data)

NIM Device 设备状态监听返回接口

参数
[out]type设备类型NIMDeviceType,其中kNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo、kNIMDeviceTypeAudioHook有效
[out]status为NIMDeviceStatus的多状态
[out]device_path当kNIMDeviceStatusReset状态时需要关注此参数,kNIMDeviceStatusReset时有可能选用了非用户选定的设备,这里返回的是重新启动的设备地址
[out]json_extension无效的扩展字段
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_enum_device_devpath_sync_cb_func

void(* nim_vchat_enum_device_devpath_sync_cb_func)(bool ret, NIMDeviceType type, const char *json_extension, const void *user_data)

NIM Device 枚举设备返回回调同步接口

参数
[out]ret结果代码,true表示成功
[out]type设备类型NIMDeviceType,其中kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat等效
[out]json_extensionJson string 设备列表,可能为空"", 例:json_extension = "[{"name":"Webcam","path":"\\?\usb......"},{"name":"Webcam2","path":"\\?\usb......"}]
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_start_device_cb_func

void(* nim_vchat_start_device_cb_func)(NIMDeviceType type, bool ret, const char *json_extension, const void *user_data)

NIM Device 启动设备异步返回接口

参数
[out]type设备类型NIMDeviceType
[out]ret启动结果,true表示成功
[out]json_extension无效的扩展字段
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

◆ nim_vchat_video_data_cb_func

void(* nim_vchat_video_data_cb_func)(uint64_t time, const char *data, unsigned int size, unsigned int width, unsigned int height, const char *json_extension, const void *user_data)

NIM Device 视频数据监听接口

参数
[out]time时间毫秒级
[out]data视频数据,默认为ARGB格式
[out]sizedata的数据长度
[out]width画面宽度
[out]height画面高度
[out]json_extensionJson string kNIMVideoSubType(缺省为kNIMVideoSubTypeARGB),收到对方视频数据返回kNIMDeviceDataUid和kNIMDeviceDataAccount,如果是辅助摄像头数据则返回kNIMDeviceId
[out]user_dataAPP的自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理!
返回
void 无返回值

枚举类型说明

◆ NIMAudioDataCbType

音频数据监听类型

枚举值
kNIMAudioDataCbTypeHook 

实时返回伴音数据,伴音数据保留原始的格式,伴音不再混音到通话数据中,如果还需要可以通过伴音数据通道再回传

kNIMAudioDataCbTypeHookAndMic 

◆ NIMDeviceStatus

设备状态类型

枚举值
kNIMDeviceStatusNoChange 

设备没有变化

kNIMDeviceStatusChange 

设备有变化

kNIMDeviceStatusWorkRemove 

工作设备被移除

kNIMDeviceStatusReset 

设备重新启动

kNIMDeviceStatusStart 

设备开始工作

kNIMDeviceStatusEnd 

设备停止工作

◆ NIMDeviceType

设备类型

枚举值
kNIMDeviceTypeAudioIn 

麦克风设备

kNIMDeviceTypeAudioOut 

听筒设备用于播放本地采集音频数据,麦克风试音

kNIMDeviceTypeAudioOutChat 

听筒设备用于通话音频数据(nim_vchat_start_device和nim_vchat_end_device中使用)

kNIMDeviceTypeVideo 

摄像头

kNIMDeviceTypeSoundcardCapturer 

声卡声音采集,得到的数据混音到发送的通话声音中(此模式使用条件苛刻不建议使用)

kNIMDeviceTypeAudioHook 

伴音,启动第三方播放器并获取音频数据(只允许存在一个进程钩子),只混音到发送的通话声音中

◆ NIMVideoSubType

视频格式类型

枚举值
kNIMVideoSubTypeARGB 

32位位图格式 存储 (B,G,R,A)...

kNIMVideoSubTypeRGB 

24位位图格式 存储 (B,G,R)...

kNIMVideoSubTypeI420 

YUV格式,存储 yyyyyyyy...uu...vv...

变量说明

◆ kNIMDeviceDataAccount

const char* kNIMDeviceDataAccount = "account"
static

用户账号 string

◆ kNIMDeviceDataUid

const char* kNIMDeviceDataUid = "uid"
static

用户id int64

◆ kNIMDeviceHeadphone

const char* kNIMDeviceHeadphone = "headphone"
static

int 大于0时标记为耳机设备

◆ kNIMDeviceHeight

const char* kNIMDeviceHeight = "height"
static

int32 画面高

◆ kNIMDeviceId

const char* kNIMDeviceId = "id"
static

string 标识ID

◆ kNIMDeviceName

const char* kNIMDeviceName = "name"
static

string 设备名称

◆ kNIMDevicePath

const char* kNIMDevicePath = "path"
static

string 设备路径

◆ kNIMDeviceSampleBit

const char* kNIMDeviceSampleBit = "sample_bit"
static

int32 采样位深

◆ kNIMDeviceSampleRate

const char* kNIMDeviceSampleRate = "sample_rate"
static

int32 采样频率

◆ kNIMDeviceWidth

const char* kNIMDeviceWidth = "width"
static

int32 画面宽

◆ kNIMVideoSubType

const char* kNIMVideoSubType = "subtype"
static

int32 视频数据类型,NIMVideoSubType

◆ kNIMVolumeWork

const char* kNIMVolumeWork = "volume_work"
static

int32 大于0标识数据将使用音量参数进行换算(暂时只针对伴音数据)