有没有办法让 iOS 播放出现UIActionSheet
时播放的音调?这是一声突然的哔哔声,后面跟着“警报”这个词。
我已经搜索了文档,但找不到任何看起来合适的东西。
有没有办法让 iOS 播放出现UIActionSheet
时播放的音调?这是一声突然的哔哔声,后面跟着“警报”这个词。
我已经搜索了文档,但找不到任何看起来合适的东西。
并非系统控制的所有行为都可以完全使用该UIAccessibility
协议重新实现。没有公共 API 可以发出这样的可访问性提示音。但是,您可以做的是以 VoiceOver 和其他辅助客户端知道提醒用户的方式来描述控制和转换。
根据您的应用程序的实现方式,您可能需要使用 通知UIAccessibility
屏幕内容已更改UIAccessibilityPostNotification()
,它接受两个参数:通知类型和对象。对于屏幕更改通知,该对象表示应获得焦点的下一个元素。VoiceOver 将处理此通知,发出提示音并将光标移动到指定元素。
一般来说,你根本不应该试图UIAccessibility
“去做”任何事情。该协议允许您描述应用程序的内容和状态。每个辅助客户都可以将这些描述翻译成它认为合适的替代界面。VoiceOver 并不是唯一依赖 UIAccessibility 的辅助功能!如果您在应用程序中模仿它的行为,您可能会混淆 VoiceOver 用户并疏远其他辅助功能(如 Switch Control)的用户。
编辑:另一个答案建议自己播放声音。再一次,我强烈建议不要在 VoiceOver 已经涵盖的场景中引入您自己的声音。系统声音图标传达的不仅仅是上下文。它们还向用户保证,特定控件是标准且可预测的,可实现所有预期行为。例如,您的自定义工作表是否支持两指擦洗手势(可访问性转义)?系统工作表确实如此,如果人们听到工作表的声音,他们就会期待它。
在 System Sound Services、AVAudioPlayer、Audio Queue Services 和 OpenAL 的帮助下,有多种播放音频的方法。如果没有外部支持库,目前最简单的两种方法是 System Sound Services 和 AVAudioPlayer。
你什么时候有点击按钮,你可以播放,延迟播放,持续播放等,这里是 AVAudioPlayer 的例子
NSError *error;
AVAudioPlayer *alertSound = [[AVAudioPlayer alloc]
initWithContentsOfURL:musicURL error:&error];
[alertSound prepareToPlay];
[alertSound play];
编辑:
- (BOOL)playAtTime:(NSTimeInterval)time
延迟播放的秒数,相对于音频输出设备的当前时间。
我相当确定您所听到的声音来自“屏幕更改”通知。这是一个可访问性通知(来自文档)
当包含屏幕主要部分的新视图出现时由应用程序发布。
当您在应用程序中发布 if 时,您可以传递将要读取的字符串或焦点应移动到的元素。在警报视图的情况下,焦点移动到警报视图,因此我假设 UIKit 将警报视图作为第二个参数发布。
要为您自己的视图执行此操作,您将执行以下操作:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
yourNewViewThatShouldGetFocus);