Bitzsoft.Integrations.VideoConference
1.0.1
dotnet add package Bitzsoft.Integrations.VideoConference --version 1.0.1
NuGet\Install-Package Bitzsoft.Integrations.VideoConference -Version 1.0.1
<PackageReference Include="Bitzsoft.Integrations.VideoConference" Version="1.0.1" />
<PackageVersion Include="Bitzsoft.Integrations.VideoConference" Version="1.0.1" />
<PackageReference Include="Bitzsoft.Integrations.VideoConference" />
paket add Bitzsoft.Integrations.VideoConference --version 1.0.1
#r "nuget: Bitzsoft.Integrations.VideoConference, 1.0.1"
#:package Bitzsoft.Integrations.VideoConference@1.0.1
#addin nuget:?package=Bitzsoft.Integrations.VideoConference&version=1.0.1
#tool nuget:?package=Bitzsoft.Integrations.VideoConference&version=1.0.1
Bitzsoft.Integrations.VideoConference
视频会议抽象层 — 统一接口定义、基础模型与结果包装。
屏蔽腾讯会议、Zoom、Microsoft Teams、飞书、钉钉、Webex 等供应商差异,提供一致的会议创建、查询、更新、取消、参会人管理与录制查询 API。
功能特性
- 统一供应商接口
IVideoConferenceService:9 个异步方法覆盖会议全生命周期 - 统一结果包装:
VideoConferenceResult、MeetingInviteResult携带成功标志与错误信息 - 统一异常
VideoConferenceException:封装供应商标识、错误码与请求 ID - 不可变模型设计:集合返回
List<T>,属性使用init保证只读
安装
dotnet add package Bitzsoft.Integrations.VideoConference
<PackageReference Include="Bitzsoft.Integrations.VideoConference" Version="1.0.0" />
接口
IVideoConferenceService
统一的视频会议供应商接口。
| 方法 | 返回类型 | 说明 |
|---|---|---|
ProviderName |
string |
供应商标识(如 TencentMeeting、Zoom) |
CreateMeetingAsync |
Task<MeetingInfo> |
创建会议,返回会议信息 |
GetMeetingAsync |
Task<MeetingInfo> |
获取会议详情 |
UpdateMeetingAsync |
Task<VideoConferenceResult> |
更新会议信息 |
CancelMeetingAsync |
Task<VideoConferenceResult> |
取消会议 |
ListMeetingsAsync |
Task<List<MeetingInfo>> |
分页查询会议列表 |
InviteAttendeesAsync |
Task<MeetingInviteResult> |
邀请参会人 |
RemoveAttendeesAsync |
Task<MeetingInviteResult> |
移除参会人 |
ListRecordingsAsync |
Task<List<MeetingRecording>> |
查询会议录制列表 |
核心模型
| 类 | 关键字段 | 说明 |
|---|---|---|
CreateMeetingRequest |
Subject、StartTime、EndTime、TimeZone、Password、Attendees、WaitingRoomEnabled、AutoEnableRecording |
创建会议请求 |
UpdateMeetingRequest |
MeetingId、Subject、StartTime、EndTime、Password |
更新会议请求 |
ListMeetingsRequest |
StartTime、EndTime、PageIndex、PageSize、Status |
会议列表查询参数 |
MeetingInfo |
MeetingId、Subject、JoinUrl、StartTime、EndTime、Status、Password、Attendees |
会议信息 |
MeetingAttendee |
UserId、Name、Email、Phone、Role |
参会人信息 |
MeetingRecording |
RecordingId、MeetingId、StartTime、DurationSeconds、DownloadUrl |
录制信息 |
VideoConferenceResult |
Success、ErrorMessage、RequestId |
操作结果 |
VideoConferenceException |
— | 统一异常(继承 IntegrationException) |
枚举
| 枚举 | 说明 |
|---|---|
MeetingStatus |
会议状态:Scheduled / InProgress / Ended / Cancelled |
AttendeeRole |
参会人角色:Host / CoHost / Attendee |
使用示例
抽象层本身只定义接口与模型,具体实现由各供应商包提供。以下示例假设已注册某个供应商实现:
public class MeetingService(IVideoConferenceService meeting)
{
public async Task<string> ScheduleAsync(string subject, DateTimeOffset start, DateTimeOffset end)
{
var info = await meeting.CreateMeetingAsync(new CreateMeetingRequest
{
Subject = subject,
StartTime = start,
EndTime = end,
Attendees =
[
new() { Name = "张三", Email = "zhangsan@example.com" }
]
});
return info.MeetingId;
}
public Task<List<MeetingRecording>> GetRecordingsAsync(string meetingId)
=> meeting.ListRecordingsAsync(meetingId);
}
多供应商解析
同一应用注册多个供应商时,通过 IIntegrationProviderResolver<IVideoConferenceService> 按供应商 ID 解析:
var resolver = serviceProvider.GetRequiredService<IIntegrationProviderResolver<IVideoConferenceService>>();
var zoom = resolver.GetRequired("zoom");
var meeting = await zoom.CreateMeetingAsync(request);
依赖
- Bitzsoft.Integrations.Core:公共基座(
IntegrationException、IIntegrationProviderResolver<T>)
相关包
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Bitzsoft.Integrations.Core (>= 1.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
-
net5.0
- Bitzsoft.Integrations.Core (>= 1.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Options (>= 5.0.0)
-
net8.0
- Bitzsoft.Integrations.Core (>= 1.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Bitzsoft.Integrations.VideoConference:
| Package | Downloads |
|---|---|
|
Bitzsoft.Integrations.VideoConference.Webex
Cisco Webex Meetings 视频会议实现 — Bearer Token 鉴权 + HttpClient,实现 IVideoConferenceService 统一接口,支持会议创建/查询/更新/取消、参会人管理与录制查询 |
|
|
Bitzsoft.Integrations.VideoConference.Feishu
飞书视频会议实现 — AppId/AppSecret 换取 tenant_access_token 令牌缓存 + HttpClient,实现 IVideoConferenceService 统一接口,支持会议创建/查询/更新/取消、参会人管理与录制查询 |
|
|
Bitzsoft.Integrations.VideoConference.MicrosoftTeams
Microsoft Teams 视频会议实现 — Azure AD Client Credentials 令牌缓存 + HttpClient,实现 IVideoConferenceService 统一接口,支持会议创建/查询/更新/取消、参会人管理与录制查询 |
|
|
Bitzsoft.Integrations.VideoConference.TencentMeeting
腾讯会议视频会议实现 — OAuth2 Client Credentials 令牌缓存 + HttpClient,实现 IVideoConferenceService 统一接口,支持会议创建/查询/更新/取消、参会人管理与录制查询 |
|
|
Bitzsoft.Integrations.VideoConference.Zoom
Zoom 视频会议实现 — Server-to-Server OAuth 令牌缓存 + HttpClient,实现 IVideoConferenceService 统一接口,支持会议创建/查询/更新/取消、参会人管理与录制查询 |
GitHub repositories
This package is not used by any popular GitHub repositories.