嗨,有人在iOS 8上尝试过AvSpeechSynthesizer吗?
我在Xcode 6上执行了快速应用程序,但没有音频输出,我在Xcode 5上运行了相同的程序,并且运行顺利。
http://nshipster.com/avspeechsynthesizer/的示例代码
NSString *string = @"Hello, World!";
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:string];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
AVSpeechSynthesizer *speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
[speechSynthesizer speakUtterance:utterance];
Xcode6有问题吗?
==编辑===
看起来像是iOS 8 sim的错误/问题,带有Xcode6的iOS7.1 Sim可以正常工作。
最佳答案
是的,这是一个错误。从iOS8 GM开始,似乎首次尝试使AVSpeechSynthesizer讲AVSpeechUtterance会导致静音。
我的解决方法是让AVSpeechSynthesizer在初始化后立即说出一个单字符语音。这将是无声的,然后您的AVSpeechSynthesizer将正常运行。
AVSpeechUtterance *bugWorkaroundUtterance = [AVSpeechUtterance speechUtteranceWithString:@" "];
bugWorkaroundUtterance.rate = AVSpeechUtteranceMaximumSpeechRate;
[self.speechSynthesizer speakUtterance:bugWorkaroundUtterance];