2013-03-14 3 views
0

Я хочу, чтобы записать звук и хотите сохранить записанный файл в папку документа: - бы сделал как: -Запись звука через AVAudioRecorder

[[AVAudioSession sharedInstance] 
     setCategory: AVAudioSessionCategoryRecord 
     error: nil]; 
    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]; 

     recorderFilePath = [[NSString stringWithFormat:@"%@/Audio.caf", DOCUMENTS_FOLDER] retain]; 
     NSURL *soundFileURL=[NSURL URLWithString:recorderFilePath]; 

    recorderFilePath = [[NSString stringWithFormat:@"%@/Audio.caf", DOCUMENTS_FOLDER] retain]; 

    NSURL *soundFileURL = [NSURL fileURLWithPath:recorderFilePath]; 


     NSLog(@"str==>%@ soundurl==>%@",recorderFilePath,soundFileURL); 
     AVAudioRecorder *newRecorder = 
     [[AVAudioRecorder alloc] initWithURL: url 
            settings: settings 
             error: nil]; 

newRecorder.delegate = self; 
     [newRecorder prepareToRecord]; 
     [newRecorder record]; 

и [рекордер стоп]; когда прекращается запись.

Если бы видел это: - this

и закодированы accordingly..But еще я не в состоянии создать любой .caf файл в папку документов.

ответ

1

После прохождения кода ниже он может быть вам полезен. Сначала возьмите объект для AVAudioRecorder как AVAudioRecorder * audioRecorder;

-(void)viewWillAppear:(BOOL)animated{ 

    NSArray *dirPaths; 
    NSString *docsDir; 

    dirPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    //here i took cache directory as saved directory you can also take NSDocumentDirectory 
    docsDir = [dirPaths objectAtIndex:0]; 

    NSString *soundFilePath = [docsDir stringByAppendingPathComponent:@"sound.caf"];//at this path your recorded audio will be saved 

    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 

    NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: 

                [NSNumber numberWithInt:AVAudioQualityMin], 
                AVEncoderAudioQualityKey, 

                [NSNumber numberWithInt:16], 
                AVEncoderBitRateKey, 

                [NSNumber numberWithInt: 2], 
                AVNumberOfChannelsKey, 

                [NSNumber numberWithFloat:44100.0], 
                AVSampleRateKey, 
                nil]; 

    NSError *error = nil; 
    audioRecorder = [[AVAudioRecorder alloc]initWithURL:soundFileURL settings:recordSettings error:&error]; 

    if(!audioRecorder) { 

     UIAlertView *alert = 
     [[UIAlertView alloc] initWithTitle: @"Warning" message: [error localizedDescription] delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     return; 

    } 

    if (error) 
    { 
     NSLog(@"error: %@", [error localizedDescription]); 
    } 
    else { 
     [audioRecorder prepareToRecord]; 
     [self recordAudio];//Mehod to Record Audio 
    } 

} 

Теперь определим метод для записи аудио,

-(void) recordAudio 
{ 
    if (!audioRecorder.recording) 
     { 
     audioRecorder.delegate = self; 
     [audioRecorder recordForDuration:10];//Here i took record duration as 10 secs 

    } 

}

Теперь вы можете написать AvAudio запись DelegateMethods как,

-(void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:  (BOOL)flag 
{ 
    //Your code after sucessful recording; 
} 
-(void)audioRecorderEncodeErrorDidOccur:(AVAudioRecorder *)recorder error:(NSError *)error 
{ 
NSLog(@"Encode Error occurred"); 
} 

надеюсь, что это будет поможет вам .. .

+0

Спасибо за ответ.I попробуйте использовать это .. и звуковой файл также создается .. но не может слышать звук из этого файла –

+0

извините, как только запишите звук и воспроизведите аудиофайл с именем sound.caf в cachedirectory – iSpark

+0

Да, у меня был плеер. кафе от быстрого игрока. Но ничего не слышать –

Смежные вопросы