в моем проекте у меня есть несколько записей, сделанных с микрофона айфонов, который я петлей с этим кодомвспыхивают на несколько петель
-(IBAction)loop1{
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile error:&error];
audioPlayer.numberOfLoops = 100;
[audioPlayer play];
}
и остановить с этим кодом
-(IBAction)loopstop1{
audioPlayer.numberOfLoops = 0;
[audioPlayer stop];
}
Когда более чем одна записи но этот метод остановки останавливает последнюю запись, которая была установлена в цикле, мне интересно, если в любом случае вырваться из всех звуковых циклов или разбить эти конкретные циклы, поскольку мне удается остановить последнюю запись I зациклились.
спасибо за любую помощь или совет
Почему вы только хранящий ссылку на один из игроков, а не всех? Вам нужно будет вызывать 'stop' для всех игроков, а не только для последнего. –
В вашем коде каждый раз, когда вы вызываете цикл, вы создаете другой объект audioPlayer объекта. С ARC старый объект, если он все еще играет, будет сохраняться до тех пор, пока он не закончится. Вы останавливаете метод не обращается. Вместо того чтобы осилить ваши объекты, вам нужно их отслеживать, например: '[audioPlayers_ addObject: newPlayer];' и затем останавливать их с помощью чего-то вроде '[audioPlayers_ makeObjectsPerformSelector: @selector (stop :))'. Надеюсь, это поможет –
Спасибо! Не понял, что создал больше одного игрока. – user1343858