IPhone之AVAudioRecorder

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 22:41 点击:

#import <AVFoundation/AVFoundation.h>  需要引入
 
//获取document目录的路径
[cpp] - (NSString*) documentsPath { 
 if (! _documentsPath) { 
  NSArray *searchPaths = 
   NSSearchPathForDirectoriesInDomains 
   (NSDocumentDirectory, NSUserDomainMask, YES); 
  _documentsPath = [searchPaths objectAtIndex: 0]; 
  [_documentsPath retain]; 
 } 
 return _documentsPath; 

  
//(document目录的路径)  
 NSString *destinationString = [[self documentsPath] 
   stringByAppendingPathComponent:filenameField.text]; 
 NSURL *destinationURL = [NSURL fileURLWithPath: destinationString]; 
//初始化AVAudioRecorder  
 NSError *recorderSetupError = nil; 
 AVAudioRecorder audioRecorder = [[AVAudioRecorder alloc] initWithURL:destinationURL 
   settings:recordSettings error:&recorderSetupError]; 
 [recordSettings release]; 
- (NSString*) documentsPath {
 if (! _documentsPath) {
  NSArray *searchPaths =
   NSSearchPathForDirectoriesInDomains
   (NSDocumentDirectory, NSUserDomainMask, YES);
  _documentsPath = [searchPaths objectAtIndex: 0];
  [_documentsPath retain];
 }
 return _documentsPath;
}
 
//(document目录的路径)
 NSString *destinationString = [[self documentsPath]
   stringByAppendingPathComponent:filenameField.text];
 NSURL *destinationURL = [NSURL fileURLWithPath: destinationString];
//初始化AVAudioRecorder
 NSError *recorderSetupError = nil;
 AVAudioRecorder audioRecorder = [[AVAudioRecorder alloc] initWithURL:destinationURL
   settings:recordSettings error:&recorderSetupError];
 [recordSettings release];

 
第二个参数  settings是一个容纳键值对的NSDictionary有四种一般的键
1:一般的音频设置
2:线性PCM设置
3:编码器设置
4:采样率转换设置
 
NSMutableDictionary  需要加入五个设置值(线性PCM)
[java] NSMutableDictionary *recordSettings = 
  [[NSMutableDictionary alloc] initWithCapacity:10]; 
  //1 ID号  
  [recordSettings setObject: 
   [NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey]; 
  float sampleRate = 
   [pcmSettingsViewController.sampleRateField.text floatValue]; 
  //2 采样率  
  [recordSettings setObject: 
   [NSNumber numberWithFloat:sampleRate] forKey: AVSampleRateKey]; 
    
  //3 通道的数目  
  [recordSettings setObject: 
   [NSNumber numberWithInt: 
    (pcmSettingsViewController.stereoSwitch.on ? 2 : 1)] 
   forKey:AVNumberOfChannelsKey]; 
  int bitDepth = 
   [pcmSettingsViewController.sampleDepthField.text intValue]; 
    
  //4 采样位数  默认 16  
  [recordSettings setObject: 
   [NSNumber numberWithInt:bitDepth] forKey:AVLinearPCMBitDepthKey]; 
    
  //5  
  [recordSettings setObject: 
   [NSNumber numberWithBool: 
     pcmSettingsViewController.bigEndianSwitch.on] 
    forKey:AVLinearPCMIsBigEndianKey]; 
  
  //6 采样信号是整数还是浮点数  
  [recordSettings setObject: 
   [NSNumber numberWithBool: 
   &nb

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1