Абсолютно самый простой способ воспроизведения звука - Воспроизведение звуковых эффектов пользовательского интерфейса или вызов вибрации с использованием системных звуковых служб .По сути, вы вызываете AudioServicesCreateSystemSoundID () и AudioServicesPlaySystemSound ().Создание системного звука относительно дорого, и воспроизведение останавливается, когда он все равно удаляется AudioServicesDisposeSystemSoundID (), поэтому вы действительно хотите их кэшировать:
- Создайте их при запуске приложения (или, возможно, при первомиграл).Вы можете сохранить их в NSDictionary с ключом по имени звукового файла и сохранить идентификатор звука в NSValue, или около того.
- Если вам это не мешает, утилизируйте их, когда ваше приложение выходит, фоновое или в памятипредупреждение.
Самое большое предостережение в том, что для "системных звуков" поддерживается только несколько звуковых форматов;Похоже, что Apple рекомендует IMA4 (afconvert -f caff -d ima4 input.file output.caf
и, возможно, -c 1
, если вы довольны моно).
Тем не менее, он идеально подходит для воспроизведения коротких звуков, если вы не возражаете противЗвук a-time (воспроизведение возобновляется, если вы воспроизводите звук, когда он уже воспроизводится).Я подозреваю, что оно также воспроизводится непосредственно ядром (вы можете установить флаг, чтобы оно продолжало воспроизведение при выходе из приложения), что, вероятно, означает, что оно более эффективно с точки зрения использования процессора. может смешиваться со звуками, воспроизводимыми AVAudioPlayer.