Skip to content

Commit 5246cce

Browse files
ArgoZhangj4587698
andauthored
feat(Meeting): add Meeting component (#6092)
* 添加Meet示例 * 例子中添加更多说明以及支持自定义服务器地址 * doc: 增加菜单 * chore: 增加源码映射关系 * doc: 更新示例 * chore: 更新依赖 * refactor: 精简代码 --------- Co-authored-by: jx <[email protected]>
1 parent ea34fd6 commit 5246cce

File tree

7 files changed

+93
-3
lines changed

7 files changed

+93
-3
lines changed

src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<PackageReference Include="BootstrapBlazor.IconPark" Version="9.0.3" />
4646
<PackageReference Include="BootstrapBlazor.ImageCropper" Version="9.0.0" />
4747
<PackageReference Include="BootstrapBlazor.IP2Region" Version="9.0.1" />
48+
<PackageReference Include="BootstrapBlazor.JitsiMeet" Version="9.0.0" />
4849
<PackageReference Include="BootstrapBlazor.JuHeIpLocatorProvider" Version="9.0.0" />
4950
<PackageReference Include="BootstrapBlazor.Live2DDisplay" Version="9.0.1" />
5051
<PackageReference Include="BootstrapBlazor.Markdown" Version="9.0.2" />
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
@page "/meet"
2+
3+
<h3>JitsiMeet会议</h3>
4+
5+
<h4>通过JitsiMeet创建会议</h4>
6+
7+
<PackageTips Name="BootstrapBlazor.JitsiMeet" />
8+
9+
<Tips class="mt-3">
10+
<p>JitsiMeet是一个开源的WebRTC会议程序,可以自托管安装也可以使用官方的托管服务(免费计划为25MAU),此组件仅为JitsiMeet的客户端程序,不含服务端。</p>
11+
<p>默认的测试会议仅支持5分钟的会议,并且主持人需要登录。子托管以及官方托管服务不需要。</p>
12+
</Tips>
13+
14+
<DemoBlock Title="使用JitsiMeet创建会议室" Introduction="使用JitsiMeet创建会议室,支持执行命令,支持OnLoad回调(meet.jit.si不会触发回调也不会响应命令,请使用8x8.vc或子托管域名测试)。例子中隐藏了内置的邀请程序,无法在会议中找到邀请链接。" Name="Normal">
15+
<section class="row form-inline g-3">
16+
<div class="col-12 col-sm-6">
17+
<Display Value="_domain" DisplayText="服务器地址" ShowLabel="true"></Display>
18+
</div>
19+
<div class="col-12 col-sm-6">
20+
<Button OnClick="RunCommand">执行命令</Button>
21+
</div>
22+
</section>
23+
<Meet @ref="@_meet" Option="@_option" Domain="@_domain" OnLoad="OnLoad"></Meet>
24+
</DemoBlock>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the Apache 2.0 License
3+
// See the LICENSE file in the project root for more information.
4+
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
5+
6+
namespace BootstrapBlazor.Server.Components.Samples;
7+
8+
/// <summary>
9+
/// Meet 视频会议组件示例
10+
/// </summary>
11+
public partial class Meets : ComponentBase
12+
{
13+
private MeetOption? _option;
14+
private Meet? _meet;
15+
private readonly string _domain = "meet.jit.si";
16+
17+
[Inject, NotNull]
18+
private ToastService? ToastService { get; set; }
19+
20+
/// <summary>
21+
/// <inheritdoc />
22+
/// </summary>
23+
protected override void OnInitialized()
24+
{
25+
base.OnInitialized();
26+
27+
_option = new MeetOption
28+
{
29+
RoomName = "BootstrapBlazor",
30+
Width = "100%",
31+
Height = 700,
32+
ConfigOverwrite = new
33+
{
34+
Lobby = new { EnableChat = false },
35+
HiddenPremeetingButtons = new string[] { "invite" },
36+
DisableInviteFunctions = true,
37+
ButtonsWithNotifyClick = new[] { new { key = "invite", preventExecution = true } }
38+
},
39+
UserInfo = new UserInfo() { DisplayName = "BootstrapBlazor", Email = "[email protected]" }
40+
};
41+
}
42+
43+
private void OnLoad()
44+
{
45+
ToastService.Information("Meet 示例", "会议室加载完成");
46+
}
47+
48+
private async Task RunCommand()
49+
{
50+
if (_meet != null)
51+
{
52+
await _meet.ExecuteCommand("toggleChat");
53+
}
54+
}
55+
}
56+

src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,12 @@ void AddNotice(DemoMenuItem item)
12081208
Url = "message"
12091209
},
12101210
new()
1211+
{
1212+
IsNew = true,
1213+
Text = Localizer["Meet"],
1214+
Url = "meet"
1215+
},
1216+
new()
12111217
{
12121218
Text = Localizer["Modal"],
12131219
Url = "modal"

src/BootstrapBlazor.Server/Locales/en-US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4943,7 +4943,8 @@
49434943
"TotpService": "ITotpService",
49444944
"VideoDevice": "IVideoDevice",
49454945
"AudioDevice": "IAudioDevice",
4946-
"FullScreenButton": "FullScreenButton"
4946+
"FullScreenButton": "FullScreenButton",
4947+
"Meet": "Meet"
49474948
},
49484949
"BootstrapBlazor.Server.Components.Samples.Table.TablesHeader": {
49494950
"TablesHeaderTitle": "Header grouping function",

src/BootstrapBlazor.Server/Locales/zh-CN.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4943,7 +4943,8 @@
49434943
"TotpService": "时间密码验证服务 ITotpService",
49444944
"VideoDevice": "视频设备服务 IVideoDevice",
49454945
"AudioDevice": "音频设备服务 IAudioDevice",
4946-
"FullScreenButton": "全屏按钮 FullScreenButton"
4946+
"FullScreenButton": "全屏按钮 FullScreenButton",
4947+
"Meet": "视频会议组件 Meet"
49474948
},
49484949
"BootstrapBlazor.Server.Components.Samples.Table.TablesHeader": {
49494950
"TablesHeaderTitle": "表头分组功能",

src/BootstrapBlazor.Server/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,8 @@
233233
"otp-service": "OtpServices",
234234
"video-device": "VideoDevices",
235235
"audio-device": "AudioDevices",
236-
"fullscreen-button": "FullScreenButtons"
236+
"fullscreen-button": "FullScreenButtons",
237+
"meet": "Meets"
237238
},
238239
"video": {
239240
"table": "BV1ap4y1x7Qn?p=1",

0 commit comments

Comments
 (0)