获取 iOS 上 VoiceOver 的当前速度

问题描述 投票:0回答:2

有什么方法可以获取 iOS 应用程序上 VoiceOver 语音的当前速度吗?有时我使用自己的

AVSpeechUtterance
字符串,并且我想使用在 VoiceOver 设置中配置的相同速率。预先感谢。

ios accessibility voiceover
2个回答
2
投票

该公告是专门针对 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


0
投票

如果您想在 VoiceOver 设置中使用 AVSpeechUtterance,则可以从 iOS 14 开始使用此参数

prefersAssistiveTechnologySettings
*

let utterance = AVSpeechUtterance(string: "Hello world !")
utterance.prefersAssistiveTechnologySettings = true

请注意,只有在调用话语时激活 VoiceOver 时,它才会使用 VoiceOver 设置。

来自此参数的苹果文档:

如果启用了 VoiceOver 等辅助技术,则用户选择的语音、速率和其他设置将用于此语音发声,而不是默认值。 如果没有启用辅助技术,则将使用 AVSpeechUtterance 上的属性值。 请注意,查询属性不会反映用户的设置。

因此您无权直接访问用户设置,但您仍然可以使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.