76#define JRTC_VERSION "4.0.0"
224#define JRTC_ROLE_SENDER 0x2
226#define JRTC_ROLE_PLAYER 0x4
228#define JRTC_ROLE_OWNER 0x8
232#define JRTC_STATUS_FORWARD_VIDEO 0x1
234#define JRTC_STATUS_FORWARD_AUDIO 0x2
236#define JRTC_STATUS_VIDEO 0x4
238#define JRTC_STATUS_AUDIO 0x8
240#define JRTC_STATUS_MEDIA (JRTC_STATUS_AUDIO|JRTC_STATUS_VIDEO)
242#define JRTC_SENDING_AUDIO (JRTC_STATUS_AUDIO|JRTC_STATUS_FORWARD_AUDIO)
244#define JRTC_SENDING_VIDEO (JRTC_STATUS_VIDEO|JRTC_STATUS_FORWARD_VIDEO)
259 int (*
on_user_joined) (
struct jrtc_t* jc,
char uid[64],
unsigned role,
unsigned status);
271 int (*
on_user_changed) (
struct jrtc_t* jc,
char uid[64],
int index,
unsigned role,
unsigned status);
322 void (*
on_audio_volume) (
struct jrtc_t* jc,
unsigned num,
unsigned char index_volume[][2]);
335 void (*
on_user_netstate) (
struct jrtc_t* jc,
unsigned num,
unsigned char index_netstate[][2]);
358 const char aesKey[16],
const char tokens[128],
const struct jrtc_handler_t *handler);
396struct jrtc_t*
jrtc_open (
const char channelId[64],
const char uid[64],
461void jrtc_set_status (
struct jrtc_t* jc,
const char uid[64],
unsigned mask,
unsigned status);
477void jrtc_set_role (
struct jrtc_t* jc,
const char uid[64],
unsigned mask,
unsigned role);
505#define jrtc_request_volume(jc) jrtc_request_batch(jc, JRTC_AUDIO_VOLUME)
509#define jrtc_request_netstate(jc) jrtc_request_batch(jc, JRTC_USER_NETSTATE)
unsigned _jrtc_net_id
展锐 Mocor 平台 需要设置PDP流程后获得的网络 ID
unsigned _jrtc_cam_angle
展锐 Mocor 平台的镜头角度.
void * _jrtc_net_info
quectel 平台的全局拨号信息地址.
void jrtc_deactivate(struct jrtc_t *jc, int devices)
关闭发送状态.
void jrtc_set_status(struct jrtc_t *jc, const char uid[64], unsigned mask, unsigned status)
请求设置用户的状态.
@ JRTC_AUDIO_VOLUME
请求用户音量大小
@ JRTC_USER_NETSTATE
请求用户网络状态
void jrtc_set_video(struct jrtc_t *jc, const char vid[64], int index)
请求视频源.
void jrtc_activate(struct jrtc_t *jc, int devices)
开启发送状态.
void * jrtc_set_ptr(struct jrtc_t *jc, void *ptr)
保存外部指针, 返回上次值
@ JRTC_JOINED
成功加入会话, 将打开音视频设备
@ JRTC_LEAVING
jrtc_leave 或内部出错后的状态
void jrtc_request_batch(struct jrtc_t *jc, int types)
请求会话中的动态批量数据.
void jrtc_set_index(struct jrtc_t *jc, const char uid[64], int index)
请求绑定用户的索引值.
struct jrtc_t * jrtc_open(const char channelId[64], const char uid[64], struct jrtc_image_t *video, struct jrtc_image_t *camera, struct jrtc_options_t *options)
分配通话资源并启动网络线程.
void jrtc_set_role(struct jrtc_t *jc, const char uid[64], unsigned mask, unsigned role)
请求设置用户的角色.
void jrtc_config(const char appKey[24], const char license[64], const char aesKey[16], const char tokens[128], const struct jrtc_handler_t *handler)
全局配置, 只需调用一次, 内部将复制所有参数
jrtc_device
为了保持暂时兼容, 即将废弃的接口, 新项目上不要使用 *
void * jrtc_get_ptr(struct jrtc_t *jc)
返回保存的指针,初始值为NULL
@ JRTC_ECONNREFUSED
连接被拒绝或关闭, 可能网络受限或太差
@ JRTC_ETOKEN_NOTFOUND
找不到对应的鉴权凭证, 请使用授权的appKey
@ JRTC_ECONNRESET
连接被重置, 可能网络已断开
@ JRTC_EAUDIO
本地音频异常, 请检查当前Mic或稍后重试
@ JRTC_EROOMNOTFND
会话或对方不存在, 可能账户不对
@ JRTC_ELOGIN
设备登入失败, 请使用授权的appKey和设备
@ JRTC_ECALLSERVERERROR
呼叫服务失败, 请检查服务器
@ JRTC_EVIDEO
本地视频异常, 请检查当前镜头或稍后重试
@ JRTC_ECODECINVALID
通信的编码设置无效
@ JRTC_EPERM
非法操作, 通常是参数错误
@ JRTC_ENOTREG
设备未注册, 请使用合法的授权设备
@ JRTC_ETIMEDOUT
连接超时, 服务或对方无响应
@ JRTC_EAUDIOCALL
external audio call, don't close audio deivce
@ JRTC_ETOKEN_EXPIRE
鉴权凭证已过期
@ JRTC_ECALLTIMEOUT
呼叫超时, 请检查服务器
@ JRTC_ENONET
无网络, 请检查设备状态
@ JRTC_EINVOKETIMEOUT
调用服务超时, 请检查服务器
void jrtc_close(struct jrtc_t *jc, enum jrtc_error err)
等待网络线程结束.
void jrtc_set_camera(struct jrtc_t *jc, int camera, void(*effect)(struct jrtc_photo_t *frame))
动态设置前后镜头.
enum jrtc_state jrtc_leave(struct jrtc_t *jc, enum jrtc_error err)
主动离开/挂断, 不会阻塞, 也没有后续任何事件.
void(* on_user_netstate)(struct jrtc_t *jc, unsigned num, unsigned char index_netstate[][2])
已索引成员的网络状态.
void(* on_user_offline)(struct jrtc_t *jc, char uid[64], int index, enum jrtc_error reason)
用户的离线事件.
void(* on_share_changed)(struct jrtc_t *jc, char uid[64], int index)
共享者的改变事件 会话内全局只有一个共享屏幕, 被所有用户抢占使用.
void(* on_user_message)(struct jrtc_t *jc, char uid[64], int index, struct jrtc_slice_t msg[], unsigned num)
用户的文本消息.
int(* on_user_joined)(struct jrtc_t *jc, char uid[64], unsigned role, unsigned status)
用户的加入事件.
void(* on_video_changed)(struct jrtc_t *jc, char vid[64], int index)
收到视频首帧事件.
void(* on_audio_volume)(struct jrtc_t *jc, unsigned num, unsigned char index_volume[][2])
已索引成员的音量变化.
int(* on_user_changed)(struct jrtc_t *jc, char uid[64], int index, unsigned role, unsigned status)
用户的更新事件.
char format
jrtc_dtype 数据格式
volatile char put
内部使用, 标识图像已更新
volatile char get
外部使用, 标识界面已绘制
unsigned short kbps
配置/实际码率
const char * vid
初始自动订阅的视频源, 默认 channelId(全局共享), 也可指定 uid(用户视频)
unsigned role
初始的角色集合, 默认 0xe=(JRTC_ROLE_SENDER|JRTC_ROLE_PLAYER|JRTC_ROLE_OWNER)
unsigned status
初始的状态集合, 默认 0xf=(JRTC_SENDING_AUDIO|JRTC_SENDING_VIDEO)
char format
jrtc_dtype 采集预览格式