Как использовать один экземпляр AVAudioPlayer для воспроизведения нескольких песен? - PullRequest
1 голос
/ 07 апреля 2010

Я хочу воспроизвести несколько песен одним объектом AVAudioplayer, я помещаю песни в строку таблицы, когда пользователь нажимает на просмотр проигрывателя строк, но когда пользователь возвращается в другую строку в проигрывателе таблицы, обе песни воспроизводятся по симентениально.Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Я предполагаю, что вы создали объект в h-файле и объявили свойство и синтезировали его. Также вы можете воспроизводить файл из метода didSelectRowAtIndexPath:. В этом методе у вас может быть следующий раздел кода.

AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: nil];
self.appSoundPlayer = newPlayer;
[newPlayer release];
[appSoundPlayer prepareToPlay];
[appSoundPlayer setVolume: 1.0];
[appSoundPlayer setDelegate: self];
[appSoundPlayer play];

До [appSoundPlayer prepareToPlay]; добавить [appsoundPlayer stop]; только для того, чтобы убедиться, что аудиоплеер находится в состоянии остановки перед началом сеанса воспроизведения.

Если вы используете другой метод, просто опубликуйте соответствующую часть кода здесь,

0 голосов
/ 26 апреля 2013

AVAudioPlayer предназначен для воспроизведения одного аудиоклипа. Если вы хотите воспроизвести другой клип, остановите текущий проигрыватель, создайте новый с новыми аудиоданными и воспроизведите его.

Если две песни перекрываются, вы, вероятно, случайно делаете два AVAudioPlayer экземпляра и не можете остановить первый.

...