2012-04-25 3 views
1

в моем проекте у меня есть несколько записей, сделанных с микрофона айфонов, который я петлей с этим кодомвспыхивают на несколько петель

-(IBAction)loop1{ 
NSError *error; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile error:&error]; 
    audioPlayer.numberOfLoops = 100; 

[audioPlayer play]; 

} 

и остановить с этим кодом

-(IBAction)loopstop1{ 

audioPlayer.numberOfLoops = 0; 

[audioPlayer stop]; 

} 

Когда более чем одна записи но этот метод остановки останавливает последнюю запись, которая была установлена ​​в цикле, мне интересно, если в любом случае вырваться из всех звуковых циклов или разбить эти конкретные циклы, поскольку мне удается остановить последнюю запись I зациклились.

спасибо за любую помощь или совет

+0

Почему вы только хранящий ссылку на один из игроков, а не всех? Вам нужно будет вызывать 'stop' для всех игроков, а не только для последнего. –

+0

В вашем коде каждый раз, когда вы вызываете цикл, вы создаете другой объект audioPlayer объекта. С ARC старый объект, если он все еще играет, будет сохраняться до тех пор, пока он не закончится. Вы останавливаете метод не обращается. Вместо того чтобы осилить ваши объекты, вам нужно их отслеживать, например: '[audioPlayers_ addObject: newPlayer];' и затем останавливать их с помощью чего-то вроде '[audioPlayers_ makeObjectsPerformSelector: @selector (stop :))'. Надеюсь, это поможет –

+0

Спасибо! Не понял, что создал больше одного игрока. – user1343858

ответ

1

Что бы я сделал:

  1. Создание NSMutableArray для удерживания audioPlayer s
  2. Добавьте AVAudioPlayer объекты в массив

    AVAudioPlayer* newLoop = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile 
                       error:&error]; 
    newLoop.numberOfLoops = 100; 
    
    [loopsArray addObject:newLoop]; 
    
  3. Передайте указатель каждой из функций запуска/останова, чтобы узнать, какой audioPlayer для запуска/остановки.


Подсказка: Чтобы остановить их всех, просто вызовите stop метод на каждом из вашего магазина петель в loopsArray

Смежные вопросы