Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iphone应用程序中录制音频,并保存到文档目录_Iphone_Ios_Avaudiorecorder_Nsdocumentdirectory - Fatal编程技术网

在iphone应用程序中录制音频,并保存到文档目录

在iphone应用程序中录制音频,并保存到文档目录,iphone,ios,avaudiorecorder,nsdocumentdirectory,Iphone,Ios,Avaudiorecorder,Nsdocumentdirectory,我正在尝试在我的应用程序中用麦克风录制音频,然后将其保存到文档目录 这是我的密码 //I set up my button and recorder -(IBAction)recordAudio:(id)sender;{ NSLog(@"recordAudio"); recorder = nil; if ( isNotRecording){ isNotRecording=NO; [record setTitle:@"Record Greeti

我正在尝试在我的应用程序中用麦克风录制音频,然后将其保存到文档目录

这是我的密码

//I set up my button and recorder
-(IBAction)recordAudio:(id)sender;{
    NSLog(@"recordAudio");
    recorder = nil;
    if ( isNotRecording){
       isNotRecording=NO;
        [record setTitle:@"Record Greeting" forState:UIControlStateNormal];

        [recorder setDelegate:self];
        [recorder prepareToRecord];
        [recorder record];
        } 
    else{ 
        isNotRecording = YES;
        [record setTitle:@"Stop Recording" forState:UIControlStateNormal];
        [recorder stop];
    }

    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setCategory:AVAudioSessionCategoryRecord error:nil];
    //I get the path to the Documents Directory
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [documentPaths objectAtIndex:0];
//I name the file with the text that is entered into the textfield
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[[self imageNameTextField]text]];
// I add extension .m4a to the file so it will be recognized as a audio file
     fullPath = [fullPath stringByAppendingFormat:@".m4a"];
  //I establish the setting I want the audio to have 
    NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10];

    if(recordEncoding==ENC_AAC){

        [recordSettings setObject:[NSNumber numberWithInt:kAudioFormatMPEG4AAC]forKey:AVFormatIDKey];
        [recordSettings setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey];
        [recordSettings setObject:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
        [recordSettings setObject:[NSNumber numberWithInt:6400] forKey:AVEncoderBitRateKey];
        [recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
        [recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityHigh] forKey: AVEncoderAudioQualityKey];
    }
//I give the url path
     NSURL *url = [NSURL fileURLWithPath:fullPath];
    NSError *error = nil;
//I allocate memory for the recording with the setting at the path
    recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
       }
不幸的是,这不起作用。有人能检查一下,看看我哪里出错了吗

- (IBAction) startRecording:(id)sender {
    if (isRecording) {

        isAudioRecord = 1;

        recordSetting = [[NSMutableDictionary alloc] init];
        [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
        [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
        [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];

        [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
        [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
        [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

        recordedFile = [NSURL fileURLWithPath:[[self audioPath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",[NSDate date]]]];

        self.mediaPath=[NSString stringWithFormat:@"%@",[NSDate date]];

        recorder=[[AVAudioRecorder alloc]init];
        recorder = [[ AVAudioRecorder alloc] initWithURL:recordedFile settings:recordSetting error:nil];

        [recorder setDelegate:self];
        [recorder prepareToRecord];
        [recorder record];
    }
    else{
        isRecording=YES;
        btnPlay.hidden=NO;
        currentTimeLabel.text=@"Not Recording";
        [recorder stop];
    }
    // start recording
}