SmartAudio/package/libs/libyunxin/lib/include/api/nim_device.h

200 lines
12 KiB
C
Raw Normal View History

2018-07-16 02:33:31 +00:00
/** @file nim_device.h
* @brief 使
* @copyright (c) 2015-2017, NetEase Inc. All rights reserved
* @author gq
* @date 2015/4/30
*/
#ifndef NIM_SDK_DLL_API_NIM_DEVICE_H_
#define NIM_SDK_DLL_API_NIM_DEVICE_H_
#include "nim_sdk_dll.h"
#include "../export_headers/nim_device_def.h"
#include "../util/stdbool.h"
#include "../util/nim_base_types.h"
#ifdef __cplusplus
extern"C"
{
#endif
/** @fn void nim_vchat_start_device(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 DEVICE NIMDeviceType下设备将不重复启动
* @param[in] type NIMDeviceType nim_device_def.h
* @param[in] device_path kNIMDevicePathkNIMDeviceTypeAudioHook [Linux平台暂时只支持视频采集]
* @param[in] fps 30,NIMDeviceType无效
* @param[in] json_extension kNIMDeviceWidth kNIMDeviceHeight
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_end_device(NIMDeviceType type, const char *json_extension)
* NIM VCHAT DEVICE
* @param[in] type NIMDeviceType nim_device_def.h
* @param[in] json_extension
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_end_device(enum NIMDeviceType type, const char *json_extension);
/** @fn 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由底层播放
* @param[in] capture true false
* @param[in] json_extension Json stringkNIMDeviceSampleRate0使
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_custom_audio_data(uint64_t time, const char *data, uint32_t size, const char *json_extension);
* NIM VCHAT , 1632,[Linux sdk只支持16] kNIMDeviceSampleRate支持8000160003200044100
* @param[in] time
* @param[in] data pcm格式
* @param[in] size data的数据长度
* @param[in] json_extension Json string kNIMDeviceSampleRate采样频和kNIMDeviceSampleBit采样位深 {"sample_rate":16000, "sample_bit":16}
* @return bool true false
*/
NIM_SDK_DLL_API bool nim_vchat_custom_audio_data(uint64_t time, const char *data, uint32_t size, const char *json_extension);
/** @typedef void 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
* @param[in] time
* @param[in] data yuv420格式
* @param[in] size data的数据长度
* @param[in] width
* @param[in] height
* @param[in] json_extension Json stringkNIMVideoSubType视频数据格式kNIMVideoSubTypeI420
* @return bool true false
*/
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);
/** @fn 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
* @param[in] capture true false
* @param[in] json_extension Json stringkNIMVideoSubTypekNIMVideoSubTypeARGB
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_enum_device_devpath(NIMDeviceType type, const char *json_extension, nim_vchat_enum_device_devpath_sync_cb_func cb, const void *user_data)
* NIM VCHAT DEVICE [Linux平台暂时只支持kNIMDeviceTypeVideo]
* @param[in] type NIMDeviceType nim_device_def.h
* @param[in] json_extension
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY
/** @fn 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 kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放
* @param[in] type NIMAudioDataCbType
* @param[in] json_extension NIMAudioDataCbType的说明
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_add_device_status_cb(NIMDeviceType type, nim_vchat_device_status_cb_func cb, const void *user_data)
* NIM VCHAT DEVICE hook
* @param[in] type NIMDeviceTypekNIMDeviceTypeAudioIn和kNIMDeviceTypeVideokNIMDeviceTypeAudioHook有效 nim_device_def.h
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_remove_device_status_cb(NIMDeviceType type)
* NIM VCHAT DEVICE hook
* @param[in] type NIMDeviceTypekNIMDeviceTypeAudioIn和kNIMDeviceTypeVideo有效 nim_device_def.h
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_remove_device_status_cb(enum NIMDeviceType type);
/** @fn 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设置采集回调返回
* @param[in] id id下设备将不重复启动device_path不同会先关闭前一个设备开启新设备
* @param[in] device_path kNIMDevicePath
* @param[in] fps
* @param[in] json_extension kNIMDeviceWidth kNIMDeviceHeight
* @param[in] cb nim_device_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb
* @return void
*/
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);
/** @fn void nim_vchat_stop_extend_camera(const char *id, const char *json_extension)
* NIM VCHAT DEVICE
* @param[in] id id
* @param[in] json_extension
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_stop_extend_camera(const char *id, const char *json_extension);
/** @fn void nim_vchat_set_audio_volumn(unsigned char volumn, bool capture)
* NIM VCHAT DEVICE 255,,
* @param[in] volumn nim_device_def.h
* @param[in] capture true false
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_audio_volumn(unsigned char volumn, bool capture);
/** @fn unsigned char nim_vchat_get_audio_volumn(bool capture)
* NIM VCHAT DEVICE nim_vchat_set_audio_volumn中设置的音量
* @param[in] capture true false
* @return unsigned char
*/
NIM_SDK_DLL_API unsigned char nim_vchat_get_audio_volumn(bool capture);
/** @fn void nim_vchat_set_audio_input_auto_volumn(bool auto_volumn)
* NIM VCHAT DEVICE
* @param[in] auto_volumn true false nim_vchat_set_audio_volumn中麦克风音量参数起效
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_audio_input_auto_volumn(bool auto_volumn);
/** @fn bool nim_vchat_get_audio_input_auto_volumn()
* NIM VCHAT DEVICE
* @return bool true false nim_vchat_set_audio_volumn中麦克风音量参数起效
*/
NIM_SDK_DLL_API bool nim_vchat_get_audio_input_auto_volumn();
/** @fn void nim_vchat_set_audio_process_info(bool aec, bool ns, bool vad)
* NIM VCHAT DEVICE sdk初始化后设置一直有效
* @param[in] aec true false
* @param[in] ns true false
* @param[in] vad true false
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_audio_process_info(bool aec, bool ns, bool vad);
/** @fn void nim_vchat_set_audio_howling_suppression(bool work)
* NIM VCHAT DEVICE sdk初始化后设置一直有效
* @param[in] work true false
* @return void
*/
NIM_SDK_DLL_API void nim_vchat_set_audio_howling_suppression(bool work);
#endif
#ifdef __cplusplus
};
#endif //__cplusplus
#endif //NIM_SDK_DLL_API_NIM_DEVICE_H_