是否可以在应用扩展中使用 AVSpeechSynthesizer?
我已经向我的应用程序添加了一个应用程序操作扩展,并且在显示的默认控制器上,我在- (void)viewDidAppear:(BOOL)animated
挂钩中添加了一些测试代码,看看我是否可以让语音合成器说 @"Hello World" 但是它似乎没有发出任何声音。
然后我尝试将合成器的委托设置为控制器,一切似乎都正常。
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance
被调用。几秒钟后
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance
这似乎表明一切正常,但没有声音输出(我的音量调高了)。
我尝试将相同的代码片段添加到我的应用程序(包含应用程序)中,它会按预期说出文本。
我了解某些框架不适用于应用程序扩展,如文档中所述。但是 AVFoundation 似乎没有说明它不适用于应用程序扩展。
任何见解将不胜感激。
提前致谢!
AVSpeechSynthesizer *s = [[AVSpeechSynthesizer alloc] init];
AVSpeechUtterance *u = [[AVSpeechUtterance alloc] initWithString:@"Hello World!"];
[s speakUtterance:u];