启用VoiceOver时,我有一个关于了解iOS中的事件更改的问题。我正在为盲人开发一些应用程序。
不幸的是,iOS上没有TTS支持,不同于可以使用NSSpeechSynthesizer对象的Mac OS SDK。
我发现VoiceService不公开。因此,总而言之,iOS上似乎没有可用于说话文本的API。
问题是:如何通知用户数据处理结束?
这是一个用户案例:用户按钮,应用程序进行一些微积分/处理,应该返回结果。在Mac中,你很容易使用speakString:@“Result”。
但我如何告诉VoiceOver公布结果?
对不起,如果我太扭曲了: - )
非常感谢...
答案 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。
请参阅此前的答案(我已在上面重申过)