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];

}

当不止一个录音循环但是这个停止方法只停止设置为循环的最后一个录音时,我想知道是否有办法打破所有音频循环,或者打破这些特定的循环,因为我只是设法停止我循环的最后一个录音。

感谢您的任何帮助或建议

4

1 回答 1

1

我会做什么:

  1. 创建一个NSMutableArray来保存audioPlayers
  2. AVAudioPlayer对象添加到数组

    AVAudioPlayer* newLoop = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile 
                                                                    error:&error];
    newLoop.numberOfLoops = 100; 
    
    [loopsArray addObject:newLoop];
    
  3. 将索引传递给每个启动/停止函数,以知道audioPlayer要启动/停止哪个。


提示:要停止所有这些,只需stop在每个循环存储中调用该方法loopsArray

于 2012-04-25T14:34:51.107 回答