2011-02-13 49 views
2

是否有可能停止Mac正在使用AppleScript生成(或排隊)的任何語音?AppleScript和Speech

我基本上是在尋找與AppleScript「說」命令相反的東西。

回答

1

要停止發言,您將不得不停止運行發言的過程。當你說「Mac正在製作的任何演講」時,這很難做到,因爲可能有不同的過程產生演講。你必須找出一種方法來確定講話的內容。

下面是一個例子,我生成的演講,因此我知道什麼過程殺死,使演講停止。

set theText to "Is it possible to stop any speech that the Mac is currently producing (or has queued) using an AppleScript? I'm basically looking for the opposite of the AppleScript \"say\" command." 
set thePID to do shell script "say " & quoted form of theText & " > /dev/null 2>&1 & echo $!" 

delay 1 
do shell script "kill " & thePID 
3

試試這個,一個完整的AppleScript解決方案(無需殼):

-- say some text asynchronously 
say "Hello, world!" waiting until completion no 
-- delay 1 second before stopping 
delay 1 
-- stop text by saying nothing, which stops current speech 
say "" with stopping current speech 
+0

我已經試圖用`停止當前speech`,沒有成功,感謝您指出了`等到完成否「選項。 – 2016-04-05 19:09:56