有什么方法可以获取 iOS 应用程序上 VoiceOver 语音的当前速度吗?有时我使用自己的
AVSpeechUtterance
字符串,并且我想使用在 VoiceOver 设置中配置的相同速率。预先感谢。
该公告是专门针对 VoiceOver 用户的吗?那么最好从 UIAccessibility 发布公告通知。 VoiceOver 将宣布通知,因此用户将通过 VoiceOver 设置以相同的声音和速度听到通知。
UIAccessibility.post(notification:.announcement, argument:"Hello World!")
从文档中阅读更多信息。
UIAccessibility.post:https://developer.apple.com/documentation/uikit/uiaccessibility/1615194-post
UIAccessibility.Notification:https://developer.apple.com/documentation/uikit/uiaccessibility/notification
公告:https://developer.apple.com/documentation/uikit/uiaccessibility/notification/1620176-announcement
如果您想在 VoiceOver 设置中使用 AVSpeechUtterance,则可以从 iOS 14 开始使用此参数
prefersAssistiveTechnologySettings
*
let utterance = AVSpeechUtterance(string: "Hello world !")
utterance.prefersAssistiveTechnologySettings = true
请注意,只有在调用话语时激活 VoiceOver 时,它才会使用 VoiceOver 设置。
来自此参数的苹果文档:
如果启用了 VoiceOver 等辅助技术,则用户选择的语音、速率和其他设置将用于此语音发声,而不是默认值。 如果没有启用辅助技术,则将使用 AVSpeechUtterance 上的属性值。 请注意,查询属性不会反映用户的设置。
因此您无权直接访问用户设置,但您仍然可以使用它们。