Возможно, вы захотите использовать AVAudioPlayer вместо AudioServices.
Следующий код возьмет аудиофайл (.m4a) и воспроизведет аудиофайл 1 раз. Не забудьте выпустить «audioPlayer», когда закончите.
NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"m4a"];
NSURL *url = [NSURL fileURLWithPath:urlAddress];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = 0;
if (audioPlayer == nil)
{
NSLog([error description]);
}
else
{
[audioPlayer play];
}
Надеюсь, этот пример поможет вам с воспроизведением аудио на реальном устройстве. Также может быть хорошей идеей увеличить звук устройства во время воспроизведения файла.
Примечание. Вам потребуется добавить инфраструктуру AVFoundation в ваш проект, если вы этого еще не сделали. А также импортировать файл заголовка.
#import <AVFoundation/AVFoundation.h>
Обновление:
Из обзора Apple Core Audio Документ
Аудио-сеансовые услуги
Audio Session Services позволяет вам управлять аудио-сессиями в вашем приложении, координируя поведение звука в вашем приложении с фоновыми приложениями на iPhone или iPod touch. Audio Session Services состоит из подмножества функций, типов данных и констант, объявленных в заголовочном файле AudioServices.h в AudioToolbox.framework.
Класс AVAudioPlayer
Класс AVAudioPlayer предоставляет простой интерфейс Objective-C для воспроизведения звуков. Если ваше приложение не требует стерео позиционирования или точной синхронизации, и если вы не воспроизводите звук, захваченный из сетевого потока, Apple рекомендует использовать этот класс для воспроизведения. Этот класс объявлен в заголовочном файле AVAudioPlayer.h в AVFoundation.framework.