详解IPhone之 AVAudioRecorder 代码实现

详解IPhone之 AVAudioRecorder 代码实现

From: http://mobile.51cto.com/iphone-277337.htm

2011-07-20 15:20 佚名 互联网 我要评论(0) 字号: T | T
一键收藏,随时查看,分享好友!

本文介绍的是详解IPhone之 AVAudioRecorder 代码实现,很好的一篇文章,与友们分享一下,我们一起来看内容。

AD:


详解IPhoneAVAudioRecorder 代码实现是本文要介绍的内容,内容不多,基本属于代码实现。我们来看详细内容。

#import <AVFoundation/AVFoundation.h>  需要引入

 
 
  1. //获取document目录的路径  
  2. - (NSString*) documentsPath {  
  3.  if (! _documentsPath) {  
  4.   NSArray *searchPaths =  
  5.    NSSearchPathForDirectoriesInDomains 
  6.    (NSDocumentDirectory, NSUserDomainMask, YES);  
  7.   _documentsPath = [searchPaths objectAtIndex: 0];  
  8.   [_documentsPath retain];  
  9.  }  
  10.  return _documentsPath;  
  11. }  
  12. //(document目录的路径)  
  13.  NSString *destinationString = [[self documentsPath]  
  14.    stringByAppendingPathComponent:filenameField.text];  
  15.  NSURL *destinationURL = [NSURL fileURLWithPath: destinationString];  
  16.  
  17. //初始化AVAudioRecorder  
  18.  NSError *recorderSetupError = nil;  
  19.  AVAudioRecorder audioRecorder = [[AVAudioRecorder alloc] initWithURL:destinationURL  
  20.    settings:recordSettings error:&recorderSetupError];   
  21.  [recordSettings release]; 

第二个参数  settings是一个容纳键值对的NSDictionary有四种一般的键

1、一般的音频设置

2、线性PCM设置

3、编码器设置

4、采样率转换设置

 
 
  1. NSMutableDictionary  需要加入五个设置值(线性PCM)  
  2.  
  3. NSMutableDictionary *recordSettings =  
  4.   [[NSMutableDictionary alloc] initWithCapacity:10];  
  5.  
  6.   //1 ID号  
  7.   [recordSettings setObject:  
  8.    [NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey];  
  9.   float sampleRate =  
  10.    [pcmSettingsViewController.sampleRateField.text floatValue];  
  11.   //2 采样率  
  12.   [recordSettings setObject:  
  13.    [NSNumber numberWithFloat:sampleRate] forKey: AVSampleRateKey];  
  14.     
  15.   //3 通道的数目  
  16.   [recordSettings setObject:  
  17.    [NSNumber numberWithInt:  
  18.     (pcmSettingsViewController.stereoSwitch.on ? 2 : 1)]  
  19.    forKey:AVNumberOfChannelsKey];  
  20.   int bitDepth =  
  21.    [pcmSettingsViewController.sampleDepthField.text intValue];  
  22.     
  23.   //4 采样位数  默认 16  
  24.   [recordSettings setObject:  
  25.    [NSNumber numberWithInt:bitDepth] forKey:AVLinearPCMBitDepthKey];  
  26.     
  27.   //5  
  28.   [recordSettings setObject:  
  29.    [NSNumber numberWithBool:  
  30.      pcmSettingsViewController.bigEndianSwitch.on]  
  31.     forKey:AVLinearPCMIsBigEndianKey];  
  32.  
  33.  
  34.   //6 采样信号是整数还是浮点数  
  35.   [recordSettings setObject:  
  36.    [NSNumber numberWithBool:  
  37.      pcmSettingsViewController.floatingSamplesSwitch.on]  
  38.     forKey:AVLinearPCMIsFloatKey]; 

AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下

 
 
  1. -(void) startRecording {  
  2.  [audioRecorder record];  
  3. }  
  4.  
  5. -(void) pauseRecording {  
  6.  [audioRecorder pause];  
  7.  recordPauseButton.selected = NO;  
  8. }  
  9.  
  10. -(void) stopRecording {  
  11.  [audioRecorder stop];  

小结:详解IPhoneAVAudioRecorder的内容介绍完了,希望本文对你有所帮助!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值