通过阅读本文,你可以了解全局参数和局部参数的设置方法。
全局参数设置
全局参数不针对特定的实例,设置时确保没有实例在运行(在open和close期间之外执行)。设置消息回调函数和日志回调函数请参见Native RTS SDK中的rtsdec.c文件。
__rts_funcs->preconfig("LogCallback", addr_to_string(output_log, buf));
__rts_funcs->preconfig("LogCbParam", addr_to_string(s, buf));
__rts_funcs->preconfig("MessageCallback", addr_to_string(format_control_message, buf));
__rts_funcs->preconfig("MessageCbParam", addr_to_string(s, buf));
...
__rts_funcs->open(...);
//这个期间不要调用preconfig
__rts_funcs->close(...);
//现在可以调用preconfig
局部参数设置
局部参数针对特定的实例,设置时需确保实例在运行(在open和close期间执行)。局部参数设置函数可实现接口调用、参数获取等功能。函数声明如下所示:
long long (* ioctl)(void *handle, const char *cmd, void *arg);
参数说明
参数 | 类型 | 描述 |
---|---|---|
handle | void * | 播放流时获取的句柄。 |
cmd | char * | 命令,详情请参见下表。 |
arg | void * | 命令所对应的参数。 |
命令 | 说明 | 命令对应的参数 | 返回值 |
---|---|---|---|
get_stream_info | 获取流参数。 | 无。 | 流参数指针rts_worker_demux_info *。 |
reload | 重连。 | 无。 | 返回0表示调用成功,小于0表示调用失败。 |
get_state | 查询key-value。 | ARTC_VIDEO_CACHE_SIZE(视频缓存时长),类型:int *。 | 缓存时长,单位:毫秒。 |
set_aes_key | 设置解密密钥。 | 阿里云视频加密keyinfo,类型:char *。 | 返回0表示调用成功,小于0表示调用失败。 |
unsubscribe | 停止订阅流。 | 无。 | 返回0表示调用成功,小于0表示调用失败。 |
subscribe | 订阅流。 | URL地址,类型:char *。 | 返回0表示调用成功,小于0表示调用失败。 |