0

我正在尝试为此实现AudioServicesPlaySystemSound(SystemSoundID(****)),我需要 Apples SystemSounds 的现有 ID 列表。通过搜索各种帖子,我在 GitHub 上找到了这个。为了我的目的,我在这个列表中找不到合适的声音。由于此存储库自 2013 年以来未更新,我不确定它是否是最新的。我想知道是否有更新的 SystemSounds 列表。

4

1 回答 1

1

首先,您找到的列表不是由 Apple 发布的。不知道作者是自己研究的还是自己收集的,但这种行为被认为是逆向工程,在开发者协议中是禁止的。

为了我的目的,我在这个列表中找不到合适的声音。

您可能需要找到一个声音资源而不是 SystemSoundID,然后注册它并使用AudioServicesCreateSystemSoundID.

我想知道是否有更新的 SystemSounds 列表。

公共 SystemSoundID 的最新列表在这里

警报声音标识符

常数

  • kSystemSoundID_Vibrate

    在 iPhone 上,将此常量与 AudioServicesPlayAlertSound 函数一起使用来调用短暂的振动。在 iPod touch 上,什么都不做。

  • kSystemSoundID_UserPreferredAlert

    在桌面上,将此常量与 AudioServicesPlayAlertSound 函数一起使用以播放在声音首选项窗格中指定的警报。

  • kSystemSoundID_FlashScreen

    在桌面上,将此常量与 AudioServicesPlayAlertSound 函数一起使用以在屏幕上显示闪光。

  • kUserPreferredAlert

    已弃用。改为使用kSystemSoundID_UserPreferredAlert

(其中一些仅适用于 macOS。)


使用其他 SystemSoundID,可视为使用私有 API。

苹果开发者论坛中苹果开发者的一些评论:

这算作私有 API 吗?

在 API 中使用未记录的任意值是不合适的,因此我建议您在提交时要这样做。

力触的触觉反馈?

对于要被视为 API 的固定 SystemSoundID 值,它必须在标头中具有符号常量。传入其他固定值是不行的。

于 2020-05-24T00:11:12.803 回答