2011-04-30 3 views
0

안녕하세요 보기에 16 개의 소리가 있습니다. 그리고 그들은 루프를합니다. 나는 모든 사운드를 멈추게하는 rect 버튼을 원합니다. 다음은 나머지 그 같은, 내가 소리 중 하나에 사용되는 코드입니다. 내가 한 번에 모든 소리를 멈 춥니 다?

-(IBAction)goStop:(id)sender; { 

    [oneAudio, twoAudio, threeAudio, fourAudio, fiveAudio, sixAudio, sevenAudio, eightAudio, nineAudio, tenAudio, elevenAudio, twelveAudio, thirteenAudio, fourteenAudio, fifthteenAudio, sixteenAudio stop]; 
} 

그러나 didnt 한 작업을 시도 #

- (IBAction)twoSound:(id)sender; { 
    if (twoAudio && twoAudio.playing) { 
     [twoAudio stop]; 
     [twoAudio release]; 
     twoAudio = nil; 
     return; 
    }  
    NSString *path = [[NSBundle mainBundle] pathForResource:@"2" ofType:@"wav"]; 
    if (twoAudio) [twoAudio release]; 
    NSError *error = nil; 
    twoAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error]; 
    if (error) 
     NSLog(@"%@",[error localizedDescription]); 
    twoAudio.delegate = self; 
    [twoAudio play];  

} 

.

감사합니다.

+0

Objective-C는 ActionScript의'stopAllSounds()'또는 무엇인가를 가지고 있습니다. – BoltClock

+0

Lol yeah i wish! 나는 게으른 방법을 시도한 것 같아요. 그리고 게으른 사람들은 아마 steve job을 사용하지 않을 것입니다. ( – user731501

답변

3

많은 사운드 객체 ​​대신 NSArray를 사용해야한다고 생각합니다. 따라서 배열을 12 개의 사운드로 쉽게 채울 수 있으며 "for"사이클을 사용하여 모두 중지 할 수 있습니다.

+0

또는 NSMutableArray가 필요하다면 – edo42

+0

이것이 아마도 가장 좋은 대답 일 것입니다. 미리 정의 된'AVAudioPlayer'의 NSArray를 사용하십시오 객체를 만들 때 그 객체를 추적하는 NSMutableArray를 생성 할 수 있습니다. – Joseph

관련 문제