fix: pause mic meter while running voice wake test
This commit is contained in:
@@ -1827,6 +1827,7 @@ struct VoiceWakeSettings: View {
|
|||||||
testState = .requesting
|
testState = .requesting
|
||||||
Task { @MainActor in
|
Task { @MainActor in
|
||||||
do {
|
do {
|
||||||
|
await meter.stop() // free the mic for speech recognizer
|
||||||
try await tester.start(
|
try await tester.start(
|
||||||
triggers: triggers,
|
triggers: triggers,
|
||||||
micID: state.voiceWakeMicID.isEmpty ? nil : state.voiceWakeMicID,
|
micID: state.voiceWakeMicID.isEmpty ? nil : state.voiceWakeMicID,
|
||||||
@@ -1834,6 +1835,8 @@ struct VoiceWakeSettings: View {
|
|||||||
self.testState = newState
|
self.testState = newState
|
||||||
if case .detected = newState { self.isTesting = false }
|
if case .detected = newState { self.isTesting = false }
|
||||||
if case .failed = newState { self.isTesting = false }
|
if case .failed = newState { self.isTesting = false }
|
||||||
|
if case .detected = newState { Task { await restartMeter() } }
|
||||||
|
if case .failed = newState { Task { await restartMeter() } }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
// timeout after 10s
|
// timeout after 10s
|
||||||
@@ -1842,11 +1845,13 @@ struct VoiceWakeSettings: View {
|
|||||||
await tester.stop()
|
await tester.stop()
|
||||||
testState = .failed("Timeout: no trigger heard")
|
testState = .failed("Timeout: no trigger heard")
|
||||||
isTesting = false
|
isTesting = false
|
||||||
|
await restartMeter()
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
await tester.stop()
|
await tester.stop()
|
||||||
testState = .failed(error.localizedDescription)
|
testState = .failed(error.localizedDescription)
|
||||||
isTesting = false
|
isTesting = false
|
||||||
|
await restartMeter()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user