iOS之录音

来源:互联网 发布:制作精品课程网站软件 编辑:程序博客网 时间:2024/04/28 04:07

先在.h中声明这些熟悉,当然要引进 AVFoundation/AVFoundation.h 头文件


在.m中实现下面方法

- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //设置刚打开的录音为不录音状态

    self.isRecording =NO;

    //播放按钮不能被点击

    [self.playsetEnabled:NO];

    self.play.titleLabel.alpha = 0.5;

    //创建一个临时文件夹用于存放录音

    self.tmpFile = [NSURLfileURLWithPath:[NSTemporaryDirectory()stringByAppendingString:@"TmpFile"]];

    NSLog(@"%@",self.tmpFile);

    //设置后台播放

    AVAudioSession *session = [AVAudioSessionsharedInstance];

    NSError *error =nil;

    [session setCategory:AVAudioSessionCategoryPlayAndRecorderror:&error];

    //判断后台有没有播放

    if (session ==nil) {

        NSLog(@"qqqqqqqq%@", [errordescription]);

    }

    else

    {

        [session setActive:YESerror:nil];

        

    }

    

    self.play = [UIButtonbuttonWithType:UIButtonTypeSystem];

    [self.playsetTitle:@"播放"forState:UIControlStateNormal];

    [self.viewaddSubview:self.play];

    [self.playaddTarget:selfaction:@selector(playbu:)forControlEvents:UIControlEventTouchUpInside];

    self.play.frame =CGRectMake(100,80, 175,50);

    

    self.record = [UIButtonbuttonWithType:UIButtonTypeSystem];

    [self.recordsetTitle:@"录音"forState:UIControlStateNormal];

    [self.viewaddSubview:self.record];

    [self.recordaddTarget:selfaction:@selector(recordbu:)forControlEvents:UIControlEventTouchUpInside];

    self.record.frame =CGRectMake(100,200, 175,50);

    

}

- (void)recordbu:(UIButton *)sender {

    

    //判断当前录音状态

    if (!self.isRecording) {

        //变成录音状态

        self.isRecording =YES;

        //将录音按钮变成停止

        [self.recordsetTitle:@"停止"forState:UIControlStateNormal];

        

        //此时将播放按钮设置为不能点击

        [self.playsetEnabled:NO];

        self.play.titleLabel.alpha = 0.5;

        

        //将录音文件保存到缓存文件

        self.recorder = [[AVAudioRecorderalloc] initWithURL:self.tmpFilesettings:nilerror:nil];

        

        //准备记录录音

        [self.recorderprepareToRecord];

        //启动或者恢复记录录音的录音文件

        [self.recorderrecord];

        self.player =nil;

        

    }

    //录音状态

    else

    {

        self.isRecording =NO;

        [self.recordsetTitle:@"录音"forState:UIControlStateNormal];

        //录音停止的时候,播放按钮可以点击

        [self.playsetEnabled:YES];

        self.play.titleLabel.alpha = 1;

        

        //停止录音

        [self.recorderstop];

        self.recorder =nil;

        NSError *error =nil;

        self.player = [[AVAudioPlayeralloc] initWithContentsOfURL:self.tmpFileerror:&error];

        //当播放的录音为空,打印错误信息

        if (self.player ==nil) {

            NSLog(@"%@", [errordescription]);

        }

        self.player.delegate =self;

    }

    

    

}

- (void)playbu:(UIButton *)sender {

    //判断是否在播放,如果正在播放

    if ([self.playerisPlaying]) {

        //暂停

        [self.playerpause];

        //按钮显示为播放

        [self.playsetTitle:@"播放"forState:UIControlStateNormal];

        

    }

    else{

        //开始播放

        [self.playerplay];

        //按钮显示为暂停

        [self.playsetTitle:@"暂停"forState:UIControlStateNormal];

    }

}


/* 代理方法 录音完成后 */

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

{

    //按钮标题变为播放

    [self.playsetTitle:@"播放"forState:UIControlStateNormal];

    

}

好了就这样简单的录音功能完成。


0 0
原创粉丝点击