2010-12-17 16 views
0

オーディオファイルを作成して再生しています。これは、シミュレータとitouch上で動作していません。私はコーディングに欠けているものを知りません。オーディオファイルが再生されていません

オーディオファイルの作成:

[audioSession setCategory :AVAudioSessionCategoryRecord error:&err]; 
       if(err){ 
        NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); 
      return; 
     } 
     [audioSession setActive:YES error:&err]; 
     err = nil; 
     if(err){ 
      NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); 
      return; 
     } 

     NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init]; 
     [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey]; 
     [recordSetting setValue:[NSNumber numberWithFloat:16000.0] forKey:AVSampleRateKey]; 
     [recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 

     ///**** 
     NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); 
     NSString* documentsDir = [paths objectAtIndex:0]; 
     recordedTmpFile = [NSURL fileURLWithPath:[documentsDir stringByAppendingPathComponent: [NSString stringWithFormat: @"%.0f.%@", [NSDate timeIntervalSinceReferenceDate] * 1000.0, @"caf"]]]; 
     ///**** 

     NSLog(@"Using File called: %@",recordedTmpFile); 

     recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error]; 

     AudioServicesCreateSystemSoundID((CFURLRef)recordedTmpFile, &_pewPewSound); 
     [recorder setDelegate:self]; 
     [recorder prepareToRecord]; 
     [recorder record]; 

を...そして今のオーディオファイルを再生する:

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; 

    AVAudioPlayer * audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedTmpFile error:&error]; 
    [audioPlayer setDelegate:self]; 
    [audioPlayer prepareToPlay]; 
    //[audioPlayer play]; 
    audioPlayer.numberOfLoops = 0; 

    if (audioPlayer == nil) 
     NSLog([error description]);    
    else 
     [audioPlayer play]; 
    AudioServicesPlaySystemSound(_pewPewSound); 

答えて

0

通常再生できる秒数には制限があり...それは実際にはファイルのサイズです!ランダムな "dong"または "bing"サウンドを再生して、機能が正しいことを確認してください。それを試しましたか?

+0

リソースパスに1オーディオファイル(.mp3)を追加すると、正常に再生されます。どこかでオーディオファイルを作成しています。 – xcodemaddy

関連する問題