iOS中的VoiceService

时间:2012-06-19 20:08:07

标签: ios voiceover

启用VoiceOver时,我有一个关于了解iOS中的事件更改的问题。我正在为盲人开发一些应用程序。

不幸的是,iOS上没有TTS支持,不同于可以使用NSSpeechSynthesizer对象的Mac OS SDK。

我发现VoiceService不公开。因此,总而言之,iOS上似乎没有可用于说话文本的API。

问题是:如何通知用户数据处理结束?

这是一个用户案例:用户按钮,应用程序进行一些微积分/处理,应该返回结果。在Mac中,你很容易使用speakString:@“Result”。

但我如何告诉VoiceOver公布结果?

对不起,如果我太扭曲了: - )

非常感谢...

2 个答案:

答案 0 :(得分:3)

你可以用这个

if (UIAccessibilityIsVoiceOverRunning()) {
   UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
                                   @"Result has been computed.");
}

答案 1 :(得分:2)

VSSpeechSynthesizer可用于iOS - 但它是一个私有API,因此可能会被应用商店拒绝。但是,您仍然可以制作供私人使用的应用。

我认为它是一个私有API的错误,因为它为部分视力创建可访问的应用程序,例如,更难。我已经提交了错误ID#:9451650错误标题:VSSpeechSynthesizer是私有的

您可以使用免费且易于集成的FliteTTS,并且仍可在iOS5 +中使用。

您还可以将一般消息“可用结果”记录为wav文件并播放。如果您的消息是静态的(或者来自可能结果的简短列表),则不需要TTS。

WWDC2012主题演讲中提到了iOS6 VoiceOver / Accessibility。

请参阅此前的答案(我已在上面重申过)