云视频会议Windows UI SDK提供了一套音视频会议的接口集合,开发者可以通过调用 AliMeeting UI SDK(以下简称SDK)开放的api,在自己的应用程序中快速集成带UI的音视频会议。
SDK&&SDK-Sample附件:AliMeetingUISDK.zip
SDK文件压缩包中有:
AliMeetingUISDK:
—bin:包含运行时所需要的dll文件
—include:包含SDK的头文件和lib文件
在接入SDK前需要请满足以下环境要求
环境和工具名称 | 版本要求 | 说明 |
---|---|---|
操作系统 | Windows 7及以上 | |
Microsoft Visual Studio | Visual Studio 2017及以上 | |
Windows SDK | 10.0.17134.0及以上 | |
Qt | 5.12.0 | 该环境为可选项,也可以不使用。 |
PS:本文介绍的接入方法不使用QT环境,附件中给出的SDKSample也为VS项目。
1.打开VS,打开新建项目窗口,选择空项目,输入名称“SDKSample”。
2. 将解压文件夹中的AliMeetingUISDK下的include文件夹和bin文件夹复制到项目文件夹内,与.sln文件同级。
3.修改项目属性。本项目配置需要为Release,平台为Win32。 项目名右键->选择“属性”->打开项目属性页。
4.添加头文件。 在属性页左侧选择,配置属性->C/C++->常规,在右栏“附加包含目录”的值中,添加“../include/header;”,点击“应用”按钮。
5.添加依赖库文件。 在属性页左侧选择,配置属性->链接器->常规,在右栏“附加库目录”的值中,添加“../include/lib;”,点击“应用”按钮。
在属性页左侧选择,配置属性->链接器->输入,在右栏“附加依赖项”的值中,添加“AliMeetingUISDK.lib;”,点击“应用”按钮。
6.修改输出目录。 在属性页左侧选择,配置属性->常规,将右栏“输出目录”的值,修改为“../bin;”,点击“确定”按钮。
1.添加回调处理类,处理回调消息. 项目的“头文件”文件夹上右键,选择“添加->新建项”
新建项为“头文件(.h)”,名称为callback.h
在文件中继承AMUiSDKMeetingCallback类
#include "AMUISDKMeetingMainWindow.h"
using namespace AMUISDK;
class CallBack : public AMUISDKMeetingCallBack {
public:
CallBack();
~CallBack();
void OnMeetingJoined();
void OnMeetingFinish(AMUISDKFinishCode code, std::string &reason);
void OnError(AMUISDKErrorCode code, std::string &reason);
void OnInviteMember();
void OnMeetingUserStatusChange(AMUISDKMeetingUser *meetingUser, AMUISDKUserStatusEvent event) ;
};
其中OnInviteMember和OnMeetingUserStatusChange函数可以根据需要选择实现。
新建callback.cpp文件,定义消息回调的接口,处理回调消息
#include "callback.h"
CallBack::CallBack()
{
}
CallBack::~CallBack()
{
}
void CallBack::OnMeetingJoined()
{
//todo 入会成功消息处理
}
void CallBack::OnMeetingFinish(AMUISDKFinishCode code, std::string & reason)
{
//todo 离会成功消息处理
}
void CallBack::OnError(AMUISDKErrorCode code, std::string & reason)
{
//todo 会议错误消息处理
}
void AMUISDKDemo::OnInviteMember()
{
//todo 会中邀请消息处理
}
void OnMeetingUserStatusChange(AMUISDKMeetingUser *meetingUser, AMUISDKUserStatusEvent event)
{
//todo 会中成员状态消息处理
}
2.添加main.cpp文件,构建UI配置信息和入会相关信息,并进入会议 添加头文件,使用命名控件AMUiSdk,并定义main函数
#include "AMUISDKMeetingMainWindow.h"
#include "callback.h"
#pragma execution_character_set("utf-8")
using namespace AMUISDK;
int main() {
}
创建CallBack类和AMUISDKMeetingMainWindow类的实例
CallBack *cb_ = new CallBack();
AMUISDKMeetingMainWindow *main_window_ = AMUISDKMeetingMainWindow::MeetingInstance(cb_);
构建UI配置信息
AMUISDKGuiConfig ui_param;
ui_param.language = ZH_CN;
ui_param.hasQApplication = false;
ui_param.app_logo = "d:/xxxxx/xxxxxx.png";
ui_param.app_window_text = "test";
ui_param.logo_banner = "d:/xxxxx/xxxxxx.png";
ui_param.meeting_topic = "测试";
ui_param.meeting_time = "2020-02-02 13:14:00";
ui_param.meeting_code = "xxxxxxxx";
ui_param.meeting_url = "";
ui_param.invite_member = true;
ui_param.chat_enable = true;
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,图标大小可以不和控件大小一致,但是可能会有拉伸或挤压。
构建入会相关信息
AMUISDKMeetingConfig meet_param;
meet_param.client_appid = "";
meet_param.sls_info = "";
meet_param.meeting_uuid = "";
meet_param.member_uuid = "";
meet_param.meeting_token = "";
meet_param.meeting_domain = "";
meet_param.user_id = "";
meet_param.audio_only = false;
meet_param.mute_audio = false;
meet_param.speaker_enabled = true;
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 )
加入会议
main_window_->JoinMeeting(ui_param, meet_param);
如图所示
项目右键,选择“生成”,生成成功。
运行程序,入会成功
enum AMUISDKFinishCode {
AMUISDKFinishCodeLeaveBySelf = 0, //主动退出会议
AMUISDKFinishCodeLeaveByKick = 1, //被动退出会议
AMUISDKFinishCodeLeaveByHangupAll = 2, //挂断所有人
AMUISDKFinishCodeOtherClientJoined = 3, //同一个userid的用户进入了会议
AMUISDKFinishCodeSystemWillSleep = 4 //系统休眠
};
enum AMUISDKErrorCode {
AMUISDKErrorCodeIllegalParameters = 0, //非法参数,接口调用参数不正确
AMUISDKErrorCodeInitializedFailed = 1, //会议初始化失败,如无法获取会议信息
AMUISDKErrorCodeDevicePermissionNotGranted = 2, //设备无权限
AMUISDKErrorCodeNoDevice = 3, //无麦克风设备
AMUISDKErrorCodeMediaServerConnectFailed = 4, //无法连接媒体服务
AMUISDKErrorCodeRoomFull = 5, //会议并发满了
AMUISDKErrorCodeJoinMeetingTimeout = 6, //入会超时
AMUISDKErrorCodeNetworkUnAvailable = 7, //网络不可用
AMUISDKErrorCodeMediaNegotiationFailed = 8 //媒体协商失败
};
enum AMUISDKUserStatusEvent{
AMUISDKUserStatusEventOnline = 0, //! 成员上线
AMUISDKUserStatusEventOffline = 1, //! 成员离线
AMUISDKUserStatusEventAudioMute = 2, //!静音
AMUISDKUserStatusEventAudioUnmute = 3, //!取消静音
AMUISDKUserStatusEventVideoMute = 4, //!禁视频
AMUISDKUserStatusEventVideoUnmute = 5, //!打开视频
AMUISDKUserStatusEventStartTalking = 6, //!说话中
AMUISDKUserStatusEventStopTalking = 7, //!结束说话
AMUISDKUserStatusEventMainSpeaker = 8, //!主讲人切换
};
sdk 初始化版本
1.增加会中邀请参会成员配置和回调
2.增加成语入会、离会等状态消息回调
3.关闭摄像头时,关闭摄像头灯
4.增加WindowsIcon和WindowsText
5.增加配置文件地址
6.增加聊天功能配置参数
在文档使用中是否遇到以下问题
更多建议
匿名提交