From 8fd6088f757762e4ef732070f7d6f22143469d12 Mon Sep 17 00:00:00 2001 From: jx Date: Thu, 22 May 2025 21:54:55 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Meet=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BootstrapBlazor.Server.csproj | 1 + .../Components/Samples/Meets.razor | 16 ++++++++ .../Components/Samples/Meets.razor.cs | 40 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 src/BootstrapBlazor.Server/Components/Samples/Meets.razor create mode 100644 src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index d210d020967..d7884d3ac14 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -76,6 +76,7 @@ + diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor new file mode 100644 index 00000000000..bda68370ac5 --- /dev/null +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor @@ -0,0 +1,16 @@ +@page "/meet" + +

JitsiMeet会议

+ +

通过JitsiMeet创建会议

+ + + + +

JitsiMeet是一个开源的WebRTC会议程序,可以自托管安装也可以使用官方的托管服务(免费计划为25MAU),此组件仅为JitsiMeet的客户端程序,不含服务端。

+
+ + + + + diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs new file mode 100644 index 00000000000..96447c7ad3d --- /dev/null +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs @@ -0,0 +1,40 @@ +using Microsoft.AspNetCore.Components; +using Console = System.Console; + +namespace BootstrapBlazor.Server.Components.Samples; + +public partial class Meets : ComponentBase +{ + private MeetOption? Option { get; set; } + + private Meet? Meet { get; set; } + + protected override void OnInitialized() + { + base.OnInitialized(); + Option = new MeetOption(); + Option.RoomName = "BootstrapBlazor"; + Option.Width = "100%"; + Option.Height = 700; + Option.ConfigOverwrite = new + { + Lobby = new {EnableChat = false}, + HiddenPremeetingButtons = new string[]{"invite"}, + DisableInviteFunctions = true, + ButtonsWithNotifyClick = new []{new {key = "invite", preventExecution = true}} + }; + Option.UserInfo = new UserInfo() { DisplayName = "BootstrapBlazor", Email = "bb@blazor.zone" }; + + } + + private void OnLoad() + { + Console.WriteLine("会议室加载完成"); + } + + private void RunCommand() + { + Meet?.ExecuteCommand("toggleChat"); + } +} + From 7985cf3bf1dfffab1906a822dbf1a9bf8d9e0d48 Mon Sep 17 00:00:00 2001 From: jx Date: Fri, 23 May 2025 20:27:43 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BE=8B=E5=AD=90=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E5=A4=9A=E8=AF=B4=E6=98=8E=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Meets.razor | 13 +++++++++++-- .../Components/Samples/Meets.razor.cs | 11 ++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor index bda68370ac5..7153871b6d8 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor @@ -8,9 +8,18 @@

JitsiMeet是一个开源的WebRTC会议程序,可以自托管安装也可以使用官方的托管服务(免费计划为25MAU),此组件仅为JitsiMeet的客户端程序,不含服务端。

+

默认的测试会议仅支持5分钟的会议,并且主持人需要登录。子托管以及官方托管服务不需要。

- + - +
+
+ +
+
+ +
+
+
diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs index 96447c7ad3d..dec05d6d081 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs @@ -9,11 +9,20 @@ public partial class Meets : ComponentBase private Meet? Meet { get; set; } + private string Domain { get; set; } = "meet.jit.si"; + + private string? RoomName { get; set; } = "BootstrapBlazor"; + + private bool IsDisable { get; set; } = true; + + /// + /// + /// protected override void OnInitialized() { base.OnInitialized(); Option = new MeetOption(); - Option.RoomName = "BootstrapBlazor"; + Option.RoomName = RoomName; Option.Width = "100%"; Option.Height = 700; Option.ConfigOverwrite = new From 9005da00b6988a9b3692253fc22c3db6255b8150 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 25 May 2025 09:40:00 +0800 Subject: [PATCH 3/7] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/MenusLocalizerExtensions.cs | 6 ++++++ src/BootstrapBlazor.Server/Locales/en-US.json | 3 ++- src/BootstrapBlazor.Server/Locales/zh-CN.json | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs b/src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs index 01de5dff64b..bca2f571ecb 100644 --- a/src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs +++ b/src/BootstrapBlazor.Server/Extensions/MenusLocalizerExtensions.cs @@ -1208,6 +1208,12 @@ void AddNotice(DemoMenuItem item) Url = "message" }, new() + { + IsNew = true, + Text = Localizer["Meet"], + Url = "meet" + }, + new() { Text = Localizer["Modal"], Url = "modal" diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index 2a2af746a92..a4ab03db383 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -4928,7 +4928,8 @@ "TotpService": "ITotpService", "VideoDevice": "IVideoDevice", "AudioDevice": "IAudioDevice", - "FullScreenButton": "FullScreenButton" + "FullScreenButton": "FullScreenButton", + "Meet": "Meet" }, "BootstrapBlazor.Server.Components.Samples.Table.TablesHeader": { "TablesHeaderTitle": "Header grouping function", diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 1bdee0a05a2..1e02a8e21ec 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -4928,7 +4928,8 @@ "TotpService": "时间密码验证服务 ITotpService", "VideoDevice": "视频设备服务 IVideoDevice", "AudioDevice": "音频设备服务 IAudioDevice", - "FullScreenButton": "全屏按钮 FullScreenButton" + "FullScreenButton": "全屏按钮 FullScreenButton", + "Meet": "视频会议组件 Meet" }, "BootstrapBlazor.Server.Components.Samples.Table.TablesHeader": { "TablesHeaderTitle": "表头分组功能", From 79768fd6be41fe2b17cf8a83ccd8b2f5be5ff521 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 25 May 2025 09:40:09 +0800 Subject: [PATCH 4/7] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E6=BA=90?= =?UTF-8?q?=E7=A0=81=E6=98=A0=E5=B0=84=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/docs.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/docs.json b/src/BootstrapBlazor.Server/docs.json index b3dd5b46714..9fa206ac020 100644 --- a/src/BootstrapBlazor.Server/docs.json +++ b/src/BootstrapBlazor.Server/docs.json @@ -233,7 +233,8 @@ "otp-service": "OtpServices", "video-device": "VideoDevices", "audio-device": "AudioDevices", - "fullscreen-button": "FullScreenButtons" + "fullscreen-button": "FullScreenButtons", + "meet": "Meets" }, "video": { "table": "BV1ap4y1x7Qn?p=1", From 78247317b82c1a556f018bcf4d833588775ac69f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 25 May 2025 09:40:20 +0800 Subject: [PATCH 5/7] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Meets.razor | 17 +++--- .../Components/Samples/Meets.razor.cs | 56 +++++++++++-------- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor index 7153871b6d8..571005de2eb 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor @@ -11,15 +11,14 @@

默认的测试会议仅支持5分钟的会议,并且主持人需要登录。子托管以及官方托管服务不需要。

- - -
-
- + +
+
+
-
- +
+
-
- +
+
diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs index dec05d6d081..69043cd2218 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs @@ -1,19 +1,22 @@ -using Microsoft.AspNetCore.Components; -using Console = System.Console; +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the Apache 2.0 License +// See the LICENSE file in the project root for more information. +// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone namespace BootstrapBlazor.Server.Components.Samples; +/// +/// Meet 视频会议组件示例 +/// public partial class Meets : ComponentBase { - private MeetOption? Option { get; set; } + private MeetOption? _option; + private Meet? _meet; + private string _domain = "meet.jit.si"; + private string? _roomName = "BootstrapBlazor"; - private Meet? Meet { get; set; } - - private string Domain { get; set; } = "meet.jit.si"; - - private string? RoomName { get; set; } = "BootstrapBlazor"; - - private bool IsDisable { get; set; } = true; + [Inject, NotNull] + private ToastService? ToastService { get; set; } /// /// @@ -21,29 +24,34 @@ public partial class Meets : ComponentBase protected override void OnInitialized() { base.OnInitialized(); - Option = new MeetOption(); - Option.RoomName = RoomName; - Option.Width = "100%"; - Option.Height = 700; - Option.ConfigOverwrite = new + + _option = new MeetOption { - Lobby = new {EnableChat = false}, - HiddenPremeetingButtons = new string[]{"invite"}, - DisableInviteFunctions = true, - ButtonsWithNotifyClick = new []{new {key = "invite", preventExecution = true}} + RoomName = _roomName, + Width = "100%", + Height = 700, + ConfigOverwrite = new + { + Lobby = new { EnableChat = false }, + HiddenPremeetingButtons = new string[] { "invite" }, + DisableInviteFunctions = true, + ButtonsWithNotifyClick = new[] { new { key = "invite", preventExecution = true } } + }, + UserInfo = new UserInfo() { DisplayName = "BootstrapBlazor", Email = "a@blazor.zone" } }; - Option.UserInfo = new UserInfo() { DisplayName = "BootstrapBlazor", Email = "bb@blazor.zone" }; - } private void OnLoad() { - Console.WriteLine("会议室加载完成"); + ToastService.Information("Meet 示例", "会议室加载完成"); } - private void RunCommand() + private async Task RunCommand() { - Meet?.ExecuteCommand("toggleChat"); + if (_meet != null) + { + await _meet.ExecuteCommand("toggleChat"); + } } } From dc9c0f8af82d897e6d9480cd7239596ffbc3dcdf Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 25 May 2025 09:40:31 +0800 Subject: [PATCH 6/7] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BootstrapBlazor.Server.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index d7884d3ac14..b48563d0368 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -45,6 +45,7 @@ + @@ -62,13 +63,13 @@ - + - - + + - + @@ -76,7 +77,6 @@ - From fb0721b3191515bc5096975b0dd87c9b42b8c8cf Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 25 May 2025 09:47:39 +0800 Subject: [PATCH 7/7] =?UTF-8?q?refactor:=20=E7=B2=BE=E7=AE=80=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs index 69043cd2218..e99a987c654 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Meets.razor.cs @@ -12,8 +12,7 @@ public partial class Meets : ComponentBase { private MeetOption? _option; private Meet? _meet; - private string _domain = "meet.jit.si"; - private string? _roomName = "BootstrapBlazor"; + private readonly string _domain = "meet.jit.si"; [Inject, NotNull] private ToastService? ToastService { get; set; } @@ -27,7 +26,7 @@ protected override void OnInitialized() _option = new MeetOption { - RoomName = _roomName, + RoomName = "BootstrapBlazor", Width = "100%", Height = 700, ConfigOverwrite = new