Воспроизведение аудио файлов на iPhone - PullRequest
1 голос
/ 30 августа 2009

Я сделал простое приложение, в котором у меня есть список песен. Пользователь нажимает на запись списка, и начинается воспроизведение песни.

Я поднял класс SoundEffect из примеров проектов Apple (например, Metronome, BubbleLevel). Кажется, хорошо работает со следующим кодом:

// declare in the .h file
SoundEffect *audio;

// setup - when controller loads
audio = [SoundEffect alloc];

// play when user taps entry
NSBundle *mainBundle = [NSBundle mainBundle];   
[audio initWithContentsOfFile:[mainBundle pathForResource:@"entry1" ofType:@"mp3"]];
[audio play];

Однако, если объект 'audio' уже воспроизводится, я бы хотел остановить его, прежде чем он снова начнет воспроизводить звук. У класса SoundEffect нет метода остановки или я что-то упускаю.

Как мне остановить звук перед его повторным воспроизведением?

Ответы [ 2 ]

4 голосов
/ 30 августа 2009

Почему вы просто не используете AVAudioPlayer ?

1 голос
/ 08 сентября 2009

Класс SoundEffect является оболочкой для API-интерфейса System Sounds (см. Файл .m из проекта Bubble Level), который представляет собой простой API-интерфейс в стиле «запускай и забывай», который не предоставляет функцию «стоп». Больше информации в Справочнике по системным звукам .

Я также согласен (и проголосовал) с предложением zoul использовать AVAudioPlayer. Системные звуки совершенно не подходят для длинных, закодированных аудиофайлов, таких как песни в файлах MP3.

...