From a8db631469c2deb604a4647191921bc145855eff Mon Sep 17 00:00:00 2001 From: chigkim <22120994+chigkim@users.noreply.github.com> Date: Fri, 24 May 2024 10:37:09 -0400 Subject: [PATCH] If VO not running, speak with speech synthesizer. --- VOCR/Accessibility.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/VOCR/Accessibility.swift b/VOCR/Accessibility.swift index d5c19ae..fe0e673 100644 --- a/VOCR/Accessibility.swift +++ b/VOCR/Accessibility.swift @@ -33,7 +33,22 @@ enum Accessibility { } } + static func isVoiceOverRunning() -> Bool { + let runningApplications = NSWorkspace.shared.runningApplications + for app in runningApplications { + if app.localizedName == "VoiceOver" { + return true + } + } + return false + } + static func speak(_ message:String) { + if !isVoiceOverRunning() { + speakWithSynthesizer(message) + return + } + let bundle = Bundle.main let url = bundle.url(forResource: "say", withExtension: "scpt") let parameters = NSAppleEventDescriptor.list() @@ -45,6 +60,7 @@ enum Accessibility { if let scriptObject = NSAppleScript(contentsOf: url!, error: &error) { var outputError:NSDictionary? if let output = scriptObject.executeAppleEvent(event, error: &outputError).stringValue { + debugPrint(outputError) log("Speak: \(output)") } else { log("Output Error: \(String(describing: outputError))")