记录一点点。。

来源:互联网 发布:淘宝怎样延长付款时间 编辑:程序博客网 时间:2024/06/05 17:06

录音功能部分代码:

-(void)loadView{

    

    //定义UIView

    UIView *view = [[UIViewalloc] initWithFrame:[UIScreenmainScreen].applicationFrame];

    view.backgroundColor = [UIColororangeColor];

   self.view = view;

    

    //状态显示label的初始化

    label = [[UILabelalloc] initWithFrame:CGRectMake(90,40, 160, 40)];

    //设置label状态显示显示为正在录制

    label.textColor = [UIColorgreenColor];

   label.text =@"等待录制";

    label.textAlignment =NSTextAlignmentCenter;

    [self.viewaddSubview:label];

    

    //定义按钮

    UIButton *button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

    button.frame =CGRectMake(90,100, 160, 40);

    [button setTitle:@"开始录制" forState:UIControlStateNormal];

    [button addTarget:selfaction:@selector(startRecoder)forControlEvents:UIControlEventTouchUpInside];

    //添加显示

    [self.viewaddSubview:button];

    

    //定义按钮

    UIButton *btn2 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

    btn2.frame =CGRectMake(90,160, 160, 40);

    [btn2 setTitle:@"停止录制" forState:UIControlStateNormal];

    [btn2 addTarget:selfaction:@selector(stopRecoder)forControlEvents:UIControlEventTouchUpInside];

    //添加显示

    [self.viewaddSubview:btn2];

    

    //定义按钮

    UIButton *btn3 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

    btn3.frame =CGRectMake(90,220, 160, 40);

    [btn3 setTitle:@"播放录制" forState:UIControlStateNormal];

    [btn3 addTarget:selfaction:@selector(startRecoderPlay)forControlEvents:UIControlEventTouchUpInside];

    

    //添加显示

    [self.viewaddSubview:btn3];

    

}


//开始录制的方法

-(void)startRecoder{


    //设置label状态显示显示为正在录制

    label.textColor = [UIColorredColor];

   label.text =@"录制中...";

    label.textAlignment =NSTextAlignmentCenter;


    //判断当前的录制状态和播放状态

    if (recoder.isRecording) {

        [recoderstop];

    }

   if (player.isPlaying) {

        [playerstop];

    }

   NSError *err = nil;

    //设定录制信息

    [[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryRecorderror:&err];

    [[AVAudioSessionsharedInstance] setActive:YESerror:&err];

    //设置采样的详细数据

    NSMutableDictionary *settings = [NSMutableDictionarydictionary];

    [settings setValue:[NSNumbernumberWithInt:kAudioFormatLinearPCM]forKey:AVFormatIDKey];

    [settings setValue:[NSNumbernumberWithFloat:44100.0]forKey:AVSampleRateKey];//采样率

    [settings setValue:[NSNumbernumberWithInt:1]

                forKey:AVNumberOfChannelsKey];//通道的数目

    [settings setValue:[NSNumbernumberWithInt:16]forKey:AVLinearPCMBitDepthKey];//采样位数默认 16

    [settings setValue:[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsBigEndianKey];//大端还是小端是内存的组织方式

    [settings setValue:[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsFloatKey];//采样信号是整数还是浮点数

    

    //定义路径,设定要保存的位置  /BDEIDJDFDSF-SDfDS4232/document

    NSString *dir = [NSHomeDirectory()stringByAppendingPathComponent:@"documents"];

    //设定路径

   NSString *savePath = [NSStringstringWithFormat:@"%@/testAudio.aif",dir];

    

   NSLog(@"savaPath:%@",savePath);

    

    //定义URL

   NSURL *fileUrl = [NSURLfileURLWithPath:savePath];

    

   if (err) {

        NSLog(@"录制之前配置出错了!");

       return;

    }

    //初始化了录制的类

   recoder  = [[AVAudioRecorderalloc] initWithURL:fileUrlsettings:settings error:&err];

    //开始录制

    [recoderrecord];


}


//停止录制的方法

-(void)stopRecoder{

    

    //设置label状态显示显示为正在录制

    label.textColor = [UIColorgreenColor];

   label.text =@"已停止...";

    label.textAlignment =NSTextAlignmentCenter;

    

    //正在录制的时候,要停止录制,正在播放的时候,要停止播放

    if (recoder.isRecording) {

        [recoderstop];

    }

    

    if(player.isPlaying){

    

        [playerstop];

    }

    

}


//开始播放

-(void)startRecoderPlay{

    

    //设置label状态显示显示为正在录制

    label.textColor = [UIColorpurpleColor];

    label.text =@"正在播放...";

    label.textAlignment =NSTextAlignmentCenter;

    

   NSError *err = nil;

    //获得录制的文件的路径

    //定义路径,设定要保存的位置  /BDEIDJDFDSF-SDfDS4232/document

    NSString *dir = [NSHomeDirectory()stringByAppendingPathComponent:@"documents"];

    //设定路径

   NSString *savePath = [NSStringstringWithFormat:@"%@/testAudio.aif",dir];

    //定义URL

   NSURL *fileUrl = [NSURLfileURLWithPath:savePath];

    //设定后台播放

    [[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:&err];

    //设定为激活状态

    [[AVAudioSessionsharedInstance] setActive:YESerror:&err];

    //使用播放器进行播放

    player  = [[AVAudioPlayeralloc] initWithContentsOfURL:fileUrlerror:&err];

    

    [playerplay];

    

    

}



原创粉丝点击