From 63236db164da1d7885a9f119e68aa99328fdead6 Mon Sep 17 00:00:00 2001 From: kkxkx <63846879+kkxkx@users.noreply.github.com> Date: Fri, 24 Jul 2026 12:01:51 +0800 Subject: [PATCH 1/3] Track last used video device in camera component Added lastUsedDeviceId property to camera object for tracking the last used video device. Signed-off-by: kkxkx <63846879+kkxkx@users.noreply.github.com> --- src/BootstrapBlazor/Components/Camera/Camera.razor.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Camera/Camera.razor.js b/src/BootstrapBlazor/Components/Camera/Camera.razor.js index f1cc07dd70c..6e47ec64ae3 100644 --- a/src/BootstrapBlazor/Components/Camera/Camera.razor.js +++ b/src/BootstrapBlazor/Components/Camera/Camera.razor.js @@ -45,6 +45,7 @@ const play = (camera, option = {}) => { camera.video.element.srcObject = stream camera.video.element.play() camera.video.track = stream.getVideoTracks()[0] + camera.lastUsedDeviceId = option.video.deviceId.exact ?? option.video.deviceId; camera.invoke.invokeMethodAsync("TriggerOpen") }).catch(err => { delete camera.video @@ -57,7 +58,7 @@ export function init(id, invoke) { if (el === null) { return } - const camera = { el, invoke } + const camera = { el, invoke, lastUsedDeviceId: null } Data.set(id, camera) navigator.mediaDevices.getUserMedia({ video: true, audio: false }).then(s => { @@ -81,6 +82,7 @@ export function update(id) { // handler switch device if (camera.video) { const deviceId = camera.el.getAttribute("data-device-id") + if (camera.lastUsedDeviceId === deviceId) return; if (camera.video.deviceId !== deviceId) { stopDevice(camera) openDevice(camera) From e933a5af328dc15ca723239c738a376dc0169952 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 24 Jul 2026 14:32:32 +0800 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20=E6=9B=B4=E6=94=B9=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Camera/Camera.razor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Camera/Camera.razor.js b/src/BootstrapBlazor/Components/Camera/Camera.razor.js index 6e47ec64ae3..f74e186e19c 100644 --- a/src/BootstrapBlazor/Components/Camera/Camera.razor.js +++ b/src/BootstrapBlazor/Components/Camera/Camera.razor.js @@ -1,4 +1,4 @@ -import Data from "../../modules/data.js" +import Data from "../../modules/data.js" const openDevice = camera => { if (camera.video) { From b3e16367360eca6e865c458942ced6a55cde2738 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 24 Jul 2026 14:49:25 +0800 Subject: [PATCH 3/3] chore: bump version 10.8.2-beta04 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index c48947950e3..bba27297510 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 10.8.2-beta03 + 10.8.2-beta04