我刚刚更新了我的mac的osx。 在更新之前,这样的程序:
from Cocoa import NSSpeechSynthesizer
import time
sp = NSSpeechSynthesizer.alloc().initWithVoice_(None)
def say(x):
sp.startSpeakingString_(x)
while sp.isSpeaking():
time.sleep(0.1)
while True:
say("chocolate")
say("vanilla")
本来我的电脑会一遍又一遍地说chocolate vanilla chocolate vanilla
。
但是现在更新之后似乎(它应该等到它完成说话以继续下一件事)
while sp.isSpeaking():
time.sleep(0.1)
忘记了它何时在循环结束时,计算机只是一遍又一遍地重复vanilla
。
(我知道我可以做say("chocolate, vanilla")
,但这不是关于这个问题。这是关于循环被遗忘的循环)