0

私のアプリには 5 つのボタンがあり、各ボタンには 5 つの曲があります。メイン ビューでは、ビューに星 (5 つの端を含む) があります。ユーザーがボタンを星の最後までドラッグすると、曲を再生する必要があります。この同じリンクには 4 つあり、これらの曲を tmp ディレクトリに保存された着信音のようなファイルにミックスしたいと考えています。私はこれについて多くのことを試みましたが、問題に対する答えを得ることができません。

私が使用しているコードは次のとおりです。

- (void) doAudioCallback: (NSTimer *)timer {
    NSString *resName1 = @"drum1.aif"; 
    NSString *resName2 = @"drum2.aif"; 
    NSString *resPath1 = [[NSBundle mainBundle] pathForResource:resName1 ofType:nil];
    NSString *resPath2 = [[NSBundle mainBundle] pathForResource:resName2 ofType:nil];
    NSString *tmpDir = NSTemporaryDirectory(); 
    NSString *tmpFilename = @"MixedoftwoSongs.aif"; 
    NSString *tmpPath = [tmpDir stringByAppendingPathComponent:tmpFilename]; 

    OSStatus status;
    if (status == OSSTATUS_MIX_WOULD_CLIP) { 
    } else {
        NSURL *url = [NSURL fileURLWithPath:tmpPath]; 

        NSData *urlData = [NSData dataWithContentsOfURL:url]; 
        NSLog(@"wrote mix file of size %d : %@", [urlData length], tmpPath); 

        AVAudioPlayer *avAudioObj = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
        self.avAudio = avAudioObj; 
        [avAudioObj prepareToPlay]; 
        [avAudioObj play]; 
    }
} 
4

1 に答える 1

0

各オーディオを遅らせるには、Perform Selector を使用する必要があると思います [self performSelector:@selector(yourmethod) withObject:nil afterDelay:0.5];

于 2012-12-05T10:26:34.257 に答える