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を保持する をaudioPlayer作成します
  2. AVAudioPlayerオブジェクトを配列に追加します

    AVAudioPlayer* newLoop = [[AVAudioPlayer alloc] initWithContentsOfURL:temporaryRecFile 
                                                                    error:&error];
    newLoop.numberOfLoops = 100; 
    
    [loopsArray addObject:newLoop];
    
  3. start / stop関数のそれぞれにインデックスを渡して、どれaudioPlayerを開始/停止するかを確認します。


ヒント :それらをすべて停止するには、stop各ループ ストアでメソッドを呼び出すだけです。loopsArray

于 2012-04-25T14:34:51.107 に答える