全部产品
云市场
云游戏

Windows UISDK集成手册

更新时间:2020-06-10 11:55:56

1.概述

云视频会议Windows UI SDK提供了一套音视频会议的接口集合,开发者可以通过调用 AliMeeting UI SDK(以下简称SDK)开放的api,在自己的应用程序中快速集成带UI的音视频会议。

2.SDK文件

SDK&&SDK-Sample附件:AliMeetingUISDK.zip

SDK文件压缩包中有:

  AliMeetingUISDK:

    —bin:包含运行时所需要的dll文件

    —include:包含SDK的头文件和lib文件

3 快速入门

3.1 开发环境准备

在接入SDK前需要请满足以下环境要求

环境和工具名称 版本要求 说明
操作系统 Windows 7及以上
Microsoft Visual Studio Visual Studio 2017及以上
Windows SDK 10.0.17134.0及以上
Qt 5.12.0 该环境为可选项,也可以不使用。

PS:本文介绍的接入方法不使用QT环境,附件中给出的SDKSample也为VS项目。

3.2 SDK快速集成

3.2.1下载并解压SDK开发包到本地

3.2.2新建项目工程

1.打开VS,打开新建项目窗口,选择空项目,输入名称“SDKSample”。

001

2. 将解压文件夹中的AliMeetingUISDK下的include文件夹和bin文件夹复制到项目文件夹内,与.sln文件同级。

002

003

3.修改项目属性。本项目配置需要为Release,平台为Win32。  项目名右键->选择“属性”->打开项目属性页。

004

4.添加头文件。  在属性页左侧选择,配置属性->C/C++->常规,在右栏“附加包含目录”的值中,添加“../include/header;”,点击“应用”按钮。

005

5.添加依赖库文件。  在属性页左侧选择,配置属性->链接器->常规,在右栏“附加库目录”的值中,添加“../include/lib;”,点击“应用”按钮。

006

  在属性页左侧选择,配置属性->链接器->输入,在右栏“附加依赖项”的值中,添加“AliMeetingUISDK.lib;”,点击“应用”按钮。

007

6.修改输出目录。  在属性页左侧选择,配置属性->常规,将右栏“输出目录”的值,修改为“../bin;”,点击“确定”按钮。

008

3.2.3添加代码文件

1.添加回调处理类,处理回调消息.  项目的“头文件”文件夹上右键,选择“添加->新建项”

009

  新建项为“头文件(.h)”,名称为callback.h

010

  在文件中继承AMUiSDKMeetingCallback类

  1. #include "AMUISDKMeetingMainWindow.h"
  2. using namespace AMUISDK;
  3. class CallBack : public AMUISDKMeetingCallBack {
  4. public:
  5. CallBack();
  6. ~CallBack();
  7. void OnMeetingJoined();
  8. void OnMeetingFinish(AMUISDKFinishCode code, std::string &reason);
  9. void OnError(AMUISDKErrorCode code, std::string &reason);
  10. void OnInviteMember();
  11. void OnMeetingUserStatusChange(AMUISDKMeetingUser *meetingUser, AMUISDKUserStatusEvent event) ;
  12. };

其中OnInviteMember和OnMeetingUserStatusChange函数可以根据需要选择实现。

  新建callback.cpp文件,定义消息回调的接口,处理回调消息

  1. #include "callback.h"
  2. CallBack::CallBack()
  3. {
  4. }
  5. CallBack::~CallBack()
  6. {
  7. }
  8. void CallBack::OnMeetingJoined()
  9. {
  10. //todo 入会成功消息处理
  11. }
  12. void CallBack::OnMeetingFinish(AMUISDKFinishCode code, std::string & reason)
  13. {
  14. //todo 离会成功消息处理
  15. }
  16. void CallBack::OnError(AMUISDKErrorCode code, std::string & reason)
  17. {
  18. //todo 会议错误消息处理
  19. }
  20. void AMUISDKDemo::OnInviteMember()
  21. {
  22. //todo 会中邀请消息处理
  23. }
  24. void OnMeetingUserStatusChange(AMUISDKMeetingUser *meetingUser, AMUISDKUserStatusEvent event)
  25. {
  26. //todo 会中成员状态消息处理
  27. }

2.添加main.cpp文件,构建UI配置信息和入会相关信息,并进入会议  添加头文件,使用命名控件AMUiSdk,并定义main函数

  1. #include "AMUISDKMeetingMainWindow.h"
  2. #include "callback.h"
  3. #pragma execution_character_set("utf-8")
  4. using namespace AMUISDK;
  5. int main() {
  6. }

  创建CallBack类和AMUISDKMeetingMainWindow类的实例

  1. CallBack *cb_ = new CallBack();
  2. AMUISDKMeetingMainWindow *main_window_ = AMUISDKMeetingMainWindow::MeetingInstance(cb_);

  构建UI配置信息

  1. AMUISDKGuiConfig ui_param;
  2. ui_param.language = ZH_CN;
  3. ui_param.hasQApplication = false;
  4. ui_param.app_logo = "d:/xxxxx/xxxxxx.png";
  5. ui_param.app_window_text = "test";
  6. ui_param.logo_banner = "d:/xxxxx/xxxxxx.png";
  7. ui_param.meeting_topic = "测试";
  8. ui_param.meeting_time = "2020-02-02 13:14:00";
  9. ui_param.meeting_code = "xxxxxxxx";
  10. ui_param.meeting_url = "";
  11. ui_param.invite_member = true;
  12. ui_param.chat_enable = true
  13. ui_param.config_path = "d:/xxxxxxx";

注意事项:

1.UI配置信息中的所有项目均可以为空。

2.如果使用QT新建了登陆界面和输入口令的界面并定义了QApplication,“hasQApplication”值需要设为true。本文中的实现没有使用QT,所以该值设为false。

3.其中invite_member默认值为false,如果设置为ture,会中显示“邀请”按钮,点击后返回OnInviteMember回调。

4.若 meeting_topic、meeting_time、meeting_code、meeting_url均为空,会议主页右下角不显示“会议详情”按钮,若有一项不为空,则显示“会议详情”按钮。

5.app_logo、app_window_text为设置WindowsIcon和WindowsTest。

6.config_path用来设置存储用户配置文件的路径。

7.chat_enable默认值为true,用来设置会中是否显示聊天功能。

8.logo_banner设置的是会中左下角公司logo图标的文件地址,图标格式可以为png、jpg,控件大小为130×20px,图标大小可以不和控件大小一致,但是可能会有拉伸或挤压。

  构建入会相关信息

  1. AMUISDKMeetingConfig meet_param;
  2. meet_param.client_appid = "";
  3. meet_param.sls_info = "";
  4. meet_param.meeting_uuid = "";
  5. meet_param.member_uuid = "";
  6. meet_param.meeting_token = "";
  7. meet_param.meeting_domain = "";
  8. meet_param.user_id = "";
  9. meet_param.audio_only = false;
  10. meet_param.mute_audio = false;
  11. meet_param.speaker_enabled = true;
  12. meet_param.mute_video = false;

注意事项:

1.入会信息配置项中”client_appid”, “meeting_uuid”, “member_uuid”, “meeting_token”, “meeting_domain”, “user_id”都不可以为空,否则将会入会失败。

2.”sls_info”为日志配置信息,可以为空。

3.”audio_only”, “mute_audio”, “speaker_enabled”, “mute_video”为配置可选项,可以根据需要设置。

4.”audio_only”默认为false,若设为true,则是音频会议,会中不允许再打开摄像头。

  入会信息”client_appid”, “sls_info”,”meeting_uuid”, “member_uuid”, “meeting_token”, “meeting_domain”需要通过访问服务获取,本文没有介绍,需要开发者自行实现。

(关于云视频会议的开发流程请参考文档:https://help.aliyun.com/document_detail/145896.html

  加入会议

  1. main_window_->JoinMeeting(ui_param, meet_param);

  如图所示

011

3.2.4编译和运行

  项目右键,选择“生成”,生成成功。

012

  运行程序,入会成功

12

3.3 状态码/错误码说明

3.3.1状态码说明

  1. enum AMUISDKFinishCode {
  2. AMUISDKFinishCodeLeaveBySelf = 0, //主动退出会议
  3. AMUISDKFinishCodeLeaveByKick = 1, //被动退出会议
  4. AMUISDKFinishCodeLeaveByHangupAll = 2, //挂断所有人
  5. AMUISDKFinishCodeOtherClientJoined = 3, //同一个userid的用户进入了会议
  6. AMUISDKFinishCodeSystemWillSleep = 4 //系统休眠
  7. };

3.3.2错误码说明

  1. enum AMUISDKErrorCode {
  2. AMUISDKErrorCodeIllegalParameters = 0, //非法参数,接口调用参数不正确
  3. AMUISDKErrorCodeInitializedFailed = 1, //会议初始化失败,如无法获取会议信息
  4. AMUISDKErrorCodeDevicePermissionNotGranted = 2, //设备无权限
  5. AMUISDKErrorCodeNoDevice = 3, //无麦克风设备
  6. AMUISDKErrorCodeMediaServerConnectFailed = 4, //无法连接媒体服务
  7. AMUISDKErrorCodeRoomFull = 5, //会议并发满了
  8. AMUISDKErrorCodeJoinMeetingTimeout = 6, //入会超时
  9. AMUISDKErrorCodeNetworkUnAvailable = 7, //网络不可用
  10. AMUISDKErrorCodeMediaNegotiationFailed = 8 //媒体协商失败
  11. };

3.3.3成员状态事件说明

  1. enum AMUISDKUserStatusEvent{
  2. AMUISDKUserStatusEventOnline = 0, //! 成员上线
  3. AMUISDKUserStatusEventOffline = 1, //! 成员离线
  4. AMUISDKUserStatusEventAudioMute = 2, //!静音
  5. AMUISDKUserStatusEventAudioUnmute = 3, //!取消静音
  6. AMUISDKUserStatusEventVideoMute = 4, //!禁视频
  7. AMUISDKUserStatusEventVideoUnmute = 5, //!打开视频
  8. AMUISDKUserStatusEventStartTalking = 6, //!说话中
  9. AMUISDKUserStatusEventStopTalking = 7, //!结束说话
  10. AMUISDKUserStatusEventMainSpeaker = 8, //!主讲人切换
  11. };

SDK ReleaseNote

1.0.0.1(2020-01-17)

sdk 初始化版本

1.0.0.2(2020-03-17)

1.增加会中邀请参会成员配置和回调

2.增加成语入会、离会等状态消息回调

3.关闭摄像头时,关闭摄像头灯

4.增加WindowsIcon和WindowsText

5.增加配置文件地址

6.增加聊天功能配置参数