Воспроизведение небольших всплесков, звуковых сигналов и т. Д. (Звучит менее 30 секунд) на самом деле довольно просто - это именно то, для чего предназначен AudioServices. Вы должны сначала получить идентификатор для каждого звука, используя что-то вроде этого:
SystemSoundID soundID = 0;
CFURLRef soundFileURL = (CFURLRef)[NSURL URLWithString:somePathString];
OSStatus errorCode = AudioServicesCreateSystemSoundID(soundFileURL, &soundID);
if (errorCode != 0) {
// Handle failure here
}
Затем вы будете удерживать этот идентификатор до тех пор, пока вам не понадобится его использовать, а затем вы сможете воспроизводить звук, просто используя эту строку:
AudioServicesPlaySystemSound(soundID);
Существует также AudioServicesPlayAlertSound()
, который будет вести себя немного по-разному в зависимости от возможностей устройства, например вибрации iPhone, если устройство настроено пользователем. Вы должны прочитать заметки Apple в документах для более полного объяснения.
Обратите внимание, что вы имеете минимальный контроль над воспроизведением звуков с помощью AudioServices - вы не можете остановить их, управлять громкостью и т. Д. AudioServices предназначен только для звуков оповещения и других подобных коротких звуковых сигналов и сигналов. Конечно, есть AVAudioPlayer, но он немного тяжелее, чем вам нужно в этом случае. Вероятно, вам лучше придерживаться AudioServices, если одно из ограничений не делает его непригодным для использования.
Вам необходимо связать AudioToolbox.framework, чтобы использовать эти функции.
P.S. Добро пожаловать в переполнение стека! Не забудьте прочитать FAQ и пометить принятые ответы на свои вопросы (если они, конечно, заслуживают хорошего ответа).