1
在项目中,我从iPhone手机的话筒多条记录,我循环使用此代码打破了多个环
-(IBAction)loop1{
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile error:&error];
audioPlayer.numberOfLoops = 100;
[audioPlayer play];
}
,并停止使用此代码
-(IBAction)loopstop1{
audioPlayer.numberOfLoops = 0;
[audioPlayer stop];
}
当不止一个记录正在循环,但是这种停止方法只会停止最后一次设置为循环的记录,我想知道是否有任何突破所有音频循环,或打破这些特定的循环,因为我只是设法停止最后一次录音已经循环。
感谢任何帮助或建议
在每个环路店的
stop
方法你为什么只存储引用的一个球员,而不是全部?你必须给所有玩家“停止”,而不仅仅是最后一个。 – 2012-04-25 14:33:07在您的代码中,每次调用循环时,都会创建另一个对象audioPlayer对象。使用ARC,旧对象如果仍在播放,则会一直存在,直到完成。你停止方法不解决。而不是孤立你的对象,你需要跟踪它们,例如''[audioPlayers_ addObject:newPlayer];'然后用类似'[audioPlayers_ makeObjectsPerformSelector:@selector(stop :)]''来阻止它们。希望这有助于 – 2012-04-25 14:41:20
谢谢!没有意识到我创造了不止一个球员。 – user1343858 2012-04-25 15:18:52