音频AVAudioPlayer 的录制与播放和上传到服务器

//开始录制的方法

-(void)startRecoder{

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

    label.textColor=[UIColor redColor];

    label.text=@"正在录制...";

    label.textAlignment=NSTextAlignmentCenter;

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

    if (recoder.isRecording) {

        [recoder stop];

    }

    if (player.isPlaying){

        [player play];

    }

    NSError *err=nil;

    //设置录制信息

    [[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryRecord error:&err];

    [[AVAudioSession sharedInstance]setActive:YES error:&err];

     //设置采样的详细数据

    NSMutableDictionary *settings=[NSMutableDictionary dictionary];

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

    //采样率

    [settings setValue:[NSNumber numberWithFloat:44100.0]forKey:AVSampleRateKey];

     //通道数目

    [settings setValue:[NSNumber numberWithInt:1]forKey:AVNumberOfChannelsKey];

   

     //采样位数  默认 16

    [settings setValue:[NSNumber numberWithInt:16]forKey:AVLinearPCMBitDepthKey];

    //内存的组织的方式

    [settings setValue:[NSNumber numberWithBool:NO]forKey:AVLinearPCMIsBigEndianKey];

    

    //采样信号是整形还是浮点

    [settings setValue:[NSNumber numberWithBool:NO]forKey:AVLinearPCMIsFloatKey];    

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

      //设定路径

    savapath=[NSString stringWithFormat:@"%@/testAudio.aif",dir];


     //定义URL

     NSURL *fileUrl=[NSURL fileURLWithPath:savapath];

    if(err){

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

        return;

     }//初值化了录制的类

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

     [recoder record];//开始录制

}

-(void)stopRecoder{

    label.textColor=[UIColor grayColor];

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

    label.textAlignment=NSTextAlignmentCenter;

    if (recoder.isRecording) {

        [recoder stop];

    }

    if (player.isPlaying) {

        [player stop];

    }

    

}

//开始播放

-(void)startRecoderPlay{

    label.textColor=[UIColor orangeColor];

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

    label.textAlignment=NSTextAlignmentCenter;

    NSError *err=nil;

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

    savapath=[NSString stringWithFormat:@"%@/testAudio.aif",dir];

    NSURL *fileUrl=[NSURL fileURLWithPath:savapath];

    //设定后台播放

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

    //激活状态

    [[AVAudioSession sharedInstance]setActive:YES error:&err];

    //使用播放器进行播放

    player=[[AVAudioPlayer alloc]initWithContentsOfURL:fileUrlerror:&err];

    

    [player play];


}

-(void)network{

    

    NSURL *url=[NSURLURLWithString:@"http://127.0.0.1/audio/upload.php"];

    //导入包中的类 用于上传

    ASIFormDataRequest *request=[[ASIFormDataRequestalloc]initWithURL:url];

    

    //设置代理

    [request setDelegate:self];

    //上传类型

    [request setRequestMethod:@"POST"];

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

    savapath = [NSString stringWithFormat:@"%@/testAudio.aif",dir];

    

    NSData *data=[NSData dataWithContentsOfFile:savapath];

    I=arc4random()%1000;

    [request  addData:data  withFileName:[NSStringstringWithFormat:@"%d.aif",I andContentType:@"audio/aif" forKey:@"file"];

    [request startAsynchronous];//开始。异步

    [requestsetDidFinishSelector:@selector(headPortraitSuccess)];//当成功后会自动触发 headPortraitSuccess 方法

    

    [request setDidFailSelector:@selector(headPortraitFail)];//如果失败会 自动触发 headPortraitFail 方法

    [request release];

}



-(void)headPortraitSuccess{

    NSLog(@"当成功后会自动触发 headPortraitSuccess 方法");

}

-(void)headPortraitFail{

    NSLog(@"当失败后会自动触发 headPortraitFail 方法");

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值