From 978e2e28b9d3e12b0d3589604bb6f04f13afdeda Mon Sep 17 00:00:00 2001 From: fufesou Date: Thu, 10 Sep 2026 15:32:49 +0800 Subject: [PATCH] fix(audio): restart capture when the device is unavailable (#16142) * fix(audio): restart capture when the device is unavailable * refact: remove low-value test Signed-off-by: fufesou --------- Signed-off-by: fufesou --- src/server/audio_capture_error.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/audio_capture_error.rs b/src/server/audio_capture_error.rs index bb837d8bf..34eec584d 100644 --- a/src/server/audio_capture_error.rs +++ b/src/server/audio_capture_error.rs @@ -11,7 +11,10 @@ pub(super) struct CaptureErrorHandler { impl CaptureErrorHandler { pub(super) fn handle(&self, error: cpal::StreamError) { - if matches!(error, cpal::StreamError::StreamInterrupted { .. }) { + if matches!( + error, + cpal::StreamError::StreamInterrupted { .. } | cpal::StreamError::DeviceNotAvailable + ) { // ScreenCaptureKit can stop capture while the remote session stays open. // The observed -3821 error does not identify its underlying trigger. // https://developer.apple.com/documentation/screencapturekit/scstreamdelegate/stream(_:didstopwitherror:)