[英]AVSpeechSynthesizer works on simulator but not on device
我一直在努力学习 AVSpeechSynthesis。 该代码在 iOS 模拟器(在 iPad 和 iOS 上)运行良好,但文本到语音功能在我的 iPad 上根本不起作用。 这是我的代码。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//Load Model
self.string = @"Hello World";
self.utterance = [[AVSpeechUtterance alloc] initWithString:self.string];
self.utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
self.utterance.rate = (float) 0.25;
//Load UI
self.textLabel.text = self.string;
}
- (IBAction)startSpeaking:(id)sender {
self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
if ([self.speechSynthesizer isSpeaking]) {
[self.speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord];
} else {
[self.speechSynthesizer speakUtterance:self.utterance];
}
}
更新:AVSpeechSyntheSizer 正在工作但没有声音所以我有一个 UILabel,其文本与 UI 上的 AVSpeechUtterance 相同。 我实现了 AVSpeechSynthesizerDelegate 以便当我点击 startSpeaking 时:文本标签将当前单词变为红色。 所以我知道 AVSpeechSynthesizer 一定在工作,因为它在进行委托调用,但我不知道为什么我听不到它。 音量调高,没有其他应用程序正在播放音频。
你的手机是静音模式吗? 这也会使合成器静音。
由于手机的Mute
模式,它不起作用。 要在 iOS 7 中打开“静音”,您必须按照以下步骤操作:
Setting
选项Accessibility
AssistiveTouch
AssistiveTouch
选项Device
和触摸Un mute
选项。 现在运行该项目并希望它会起作用。
PS:(在 iOS 8.0 中这段代码不起作用,因为对于一个意外的错误,他们从 iOS8.1 中删除了它,现在它可以完美运行)希望它可以工作。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.