4

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

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

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

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

这是一个用户案例:用户按钮,应用程序进行一些演算/过程,而不是应该返回结果。在 Mac 中,这很容易使用 speakString:@"Result"。

但是我怎样才能告诉 VoiceOver 宣布结果呢?

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

非常感谢你...

4

2 回答 2

3

你可以用这个

if (UIAccessibilityIsVoiceOverRunning()) {
   UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
                                   @"Result has been computed.");
}
于 2012-07-07T22:51:17.937 回答
2

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

我认为它是一个私有 API 是一个错误,因为它使得为例如有视力障碍的人创建可访问的应用程序变得更加困难。我已提交错误 ID #:9451650 错误标题:VSSpeechSynthesizer 是私有的

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

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

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

在这里查看以前的答案(我在上面重申过)

于 2012-06-26T11:29:50.090 回答