【问题标题】:List of default SystemSoundID默认 SystemSoundID 列表
【发布时间】:2020-09-10 17:51:01
【问题描述】:
我正在尝试实现AudioServicesPlaySystemSound(SystemSoundID(****)),因此我需要Apples SystemSounds 的现有ID 列表。搜索各种帖子,我在 GitHub 上找到了 this。为了我的目的,我在这个列表中找不到合适的声音。由于此存储库自 2013 年以来未更新,我不确定它是否是最新的。我想知道是否有更新的 SystemSounds 列表。
【问题讨论】:
标签:
swift
xcode
soundeffect
system-sounds
【解决方案1】:
首先,您找到的列表不是由 Apple 发布的。
不知道作者是自己研究的还是自己收集的,但这种行为被认为是逆向工程,在开发者协议中是禁止的。
我在这个列表中找不到适合我的声音。
您可能需要找到一个声音资源而不是 SystemSoundID,然后使用AudioServicesCreateSystemSoundID 注册它并为其创建一个 SystemSoundID。
我想知道是否有更新的 SystemSounds 列表。
最新公开 SystemSoundID 列表为here:
警报声音标识符
常量
-
kSystemSoundID_Vibrate
在 iPhone 上,将此常量与
AudioServicesPlayAlertSound
函数调用一个简短的振动。在 iPod touch 上,什么都不做。
-
kSystemSoundID_UserPreferredAlert
在桌面上,将此常量与
AudioServicesPlayAlertSound
播放声音首选项窗格中指定的警报的函数。
-
kSystemSoundID_FlashScreen
在桌面上,将此常量与
AudioServicesPlayAlertSound
在屏幕上显示闪光的功能。
-
kUserPreferredAlert
已弃用。请改用kSystemSoundID_UserPreferredAlert。
(其中一些仅适用于 macOS。)
使用其他SystemSoundID,可视为使用私有API。
Apple 开发者论坛中来自 Apple 开发者的一些 cmets:
Does this count as a private API?
在 API 中使用未记录的任意值是不合适的,因此我建议您在提交时不要这样做。
Haptic feedback for force touch?
对于要被视为 API 的固定 SystemSoundID 值,它必须在标头中具有符号常量。传入其他固定值是不行的。