zoukankan      html  css  js  c++  java
  • IPhone之AVAudioRecorder

    #import <AVFoundation/AVFoundation.h>  需要引入
     
    //获取document目录的路径
    - (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)
    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:
         pcmSettingsViewController.floatingSamplesSwitch.on]
        forKey:AVLinearPCMIsFloatKey];
    
    AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下
    -(void) startRecording {
     [audioRecorder record];
    }
    -(void) pauseRecording {
     [audioRecorder pause];
     recordPauseButton.selected = NO;
    }
    -(void) stopRecording {
     [audioRecorder stop];
    }
    
  • 相关阅读:
    iOS Simulator功能介绍关于Xamarin IOS开发
    Unity中制作游戏的快照游戏支持玩家拍快照
    手机数据抓包入门教程
    Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数
    Hierarchy视图里的Transform和Camera组件
    用JAVA编写MP3解码器——GUI(FFT)(转)
    功率W与dBm的对照表及关系(转)
    单鞭天线的长度计算方法(转)
    STM32F10X SPI操作flash MX25L64读写数据(转)
    利用STM32F唯一96bit序列号实现反拷贝加密的源代码公开(转)
  • 原文地址:https://www.cnblogs.com/lm3515/p/1981381.html
Copyright © 2011-2022 走看看