繁体   English   中英

AVSpeechSynthesizer 可在模拟器上运行,但不能在设备上运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM