集成SDK
更新时间:2021-09-24
开发环境 请确保开发环境满足以下技术要求:
- Windows7、Windows8、Windows10或以上版本
- 安装ARM DS-5 v5.26.2或以上版本。
- 安装msys2-x86_64-20210105或以上版本。
- 安装ActivePerl5.32或以上版本。
- 安装python3.8.7或以上版本。
- 硬件设备:基于ASR3601的小度手表。
SDK下载
SDK目录说明
- BRTC.FreeRtos.SDKV0.0.1/include目录 ------ 放置api头文件
- BRTC.FreeRtos.SDKV0.0.1/lib目录 ------ 放置音视频静态库libbrtc.a
- BRTC.FreeRtos.SDKV0.0.1/src目录 ------ 放置api调用的参考demo代码
SDK集成
- 将BRTC.FreeRtos.SDKV0.0.1/include目录加入到CMakeLists.txt中的头文件搜索路径。
- 将BRTC.FreeRtos.SDKV0.0.1/lib目录下的libbrtc.a放到执行目录下。
- application调用sdk api流程可参考BRTC.FreeRtos.SDKV0.0.1/src/demo.c源代码。
- 小度手表app调用sdk api流程可参考BRTC.FreeRtos.SDKV0.0.1/src/lv_app源代码。
- 完成以上步骤后,即可开始调用FreeRtos RTC的API。
API调用流程
- API 调用流程图
- API codes使用样例
`
void OnRtcMessage(RtcMessage* msg)
{
printf("myListener got Message: %d\n", msg->msgType);
switch (msg->msgType) {
case RTC_MESSAGE_ROOM_EVENT_LOGIN_OK: {
printf("Login ok!\n");
} break;
case RTC_MESSAGE_ROOM_EVENT_LOGIN_ERROR: {
printf("Login error !\n");
} break;
case RTC_MESSAGE_ROOM_EVENT_REMOTE_COMING: {
printf("Feed Coming!\n");
} break;
case RTC_MESSAGE_ROOM_EVENT_REMOTE_LEAVING: {
printf("Feed Leaving !\n");
} break;
case RTC_MESSAGE_STATE_STREAM_UP: {
printf("stream up, send/got video now.\n");
} break;
default:
break;
}
}
const char *s_url = "ws://182.61.201.102:8188/janus";
static void *client = NULL;
int main(int argc, char* argv[])
{
bool ret =false;
const char appId[] = "APPID_GET_FROM_BAIDU"; //please get a appId from baidu.
const char token[] = "no_token";
const char room_name[] = "8000";
const char user_id[] = "1008";
if(client == NULL) {
client = brtc_create_client();
if (client == NULL) {
printf("brtc_create_client failed\n");
return -1;
}
}
brtc_register_message_listener(client, OnRtcMessage);
brtc_set_server_url(client, s_url);
ret = brtc_init_sdk(client, appId, room_name, user_id, token, NULL);
if (!ret) {
printf("brtc_init_sdk failed\n");
return -1;
}
ret = brtc_login_room(client);
if (!ret) {
printf("brtc_login_room failed\n");
brtc_deInit_sdk(test);
brtc_destroy_client(client);
if (client)
client = NULL;
return -1;
}
.....
ret = brtc_logout_room(client);
if (!ret) {
printf("brtc_logout_room failed\n");
brtc_deInit_sdk(test);
brtc_destroy_client(client);
if (client)
client = NULL;
return -1;
}
brtc_deInit_sdk(test);
brtc_destroy_client(client);
if (client)
client = NULL;
return 0;
}
`
打包应用程序-依赖的文件列表
- libbrtc.a