Che*_*CH. 5 accessibility text-to-speech voiceover ios8
现在,我的应用程序实现AVSpeechSynthesizer了读取每个屏幕的说明.该应用还会在启用Voiceover辅助功能时考虑.
我现在面临的问题是文本到语音功能与配音功能重叠.是否有解决方案来检测当用户导航到屏幕上的另一个元素时,TTS停止说话,或者当TTS说话时,画外音不会说话直到TTS结束(尽管前者是优选的).
目前的开发是在iOS 8上,使用Swift.
选项1
您可以通过观察UIAccessibilityElementFocusedNotification通知来监听新元素何时被聚焦
[[NSNotificationCenter defaultCenter] addObserver:yourTTSManager
selector:@selector(interruptTTSFunction:)
name:UIAccessibilityElementFocusedNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
并在收到自定义语音合成通知时打断它们。
优点:为 VoiceOver 用户提供了很多控制权。
缺点:您不知道 VoiceOver 何时完成读取新聚焦的控件,因此您不能使用它来中断和重新启动公告。
选项 2
您可以通过发布来告诉 VoiceOver 暂停和重新启动
UIAccessibilityPostNotification(UIAccessibilityPauseAssistiveTechnologyNotification, nil);
Run Code Online (Sandbox Code Playgroud)
在您宣布之前和
UIAccessibilityPostNotification(UIAccessibilityResumeAssistiveTechnologyNotification, nil);
Run Code Online (Sandbox Code Playgroud)
完成后。
优点:您的公告将被完整阅读。
缺点:当您暂停 VoiceOver 时,您的控制权会从用户手中夺走。
推荐
如果您的公告很短,暂停和恢复 AT 并不是一个糟糕的解决方案。否则,我建议允许 VoiceOver 用户通过监听UIAccessibilityElementFocusedNotification事件来中断/取消您的通知,并在收到它们时取消任何活动通知。
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |