详解IPhone之 AVAudioRecorder 代码实现

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

详解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的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-11 17:32:51

iPhone视图

2011-07-18 14:39:53

iPhone SDK UIKit

2011-07-28 10:11:54

iPhone开发 备忘

2011-08-17 15:19:38

iPhone应用数据

2011-08-18 10:59:57

iPhone开发消息通信NSNotificat

2011-08-18 15:40:20

iPhone文本切页

2011-07-27 11:19:33

iPhone UITableVie

2011-08-12 14:04:53

iPhone动画

2011-07-25 14:44:41

iPhone iPhone开发 截屏

2011-07-20 17:29:12

iPhone 网络

2011-08-16 15:36:47

iPhone应用测试

2011-07-29 13:55:10

IPhone 动画

2011-07-29 15:47:21

iPhone开发 Objective- C

2011-08-15 11:23:41

iPhone开发循环滚动UIScrollVie

2011-08-01 13:13:19

iPhone开发 图片

2011-08-08 10:42:46

iPhone UITableVie 分页

2011-06-03 10:19:59

iphone Objective-

2021-05-08 07:57:17

ServletFilter设计模式

2011-08-18 09:44:33

iPhone SDK仪表控件UIDialView

2011-08-10 14:40:23

iPhone动画
点赞
收藏

51CTO技术栈公众号