• IOS开发之录音


             为什么要把录音单独拿出来写呢,只是因为这个比较简单,但是就是因为他比较简单,导致我好长一段时间把它给忽视了,但是等到我回想起来的时候,忽然忘记了我到底有没有学过这个东西 ,在此,实在是想想都有点脸红。。。。-。-!;

    录音:

       相关类介绍:

        (1)AVaudioPlayer

        (2)setting

              <1>AVNumberOfChannelsKey     通道数

              <2>AVSampleRateKey           采样率 44100

              <3>AVLinearPCMBitDepthKey    比特lv 16 32

              <4>AVEncoderAudioQualityKey  质量

              <5>AVEncoderBitRateKey       比特采样lv 128000

        (3)使用

            1、初始化

            2、开始录音

            3.停止录音

    废话不多说,我们直接上代码;

    //录音的方法

    -(void)startAudioRecoder:(UIButton *)sender{

        /**

         URL:是本地的一个URL,recodeer需要一个存储的路径

         */

        sender.selected = !sender.selected;

        if (sender.selected!=YES) {

            [recorder stop];

            return;

        }

        

        NSString * name = [NSString stringWithFormat:@"%d.aiff",(int)[NSDate date].timeIntervalSince1970];

        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:name] ;

        NSError *error;

        recorder = [[AVAudioRecorder alloc]initWithURL:[NSURL URLWithString:path] settings:@{AVNumberOfChannelsKey:@2,AVSampleRateKey:@44100,AVLinearPCMBitDepthKey:@32,AVEncoderAudioQualityKey:@(AVAudioQualityMax),AVEncoderBitRateKey:@128000}  error:&error];

        /**

         *  AVNumberOfChannelsKey 声道数   通常为双声道2

         *  AVSampleRateKey       采样率   赫兹-》44100

         *  AVLinearPCMBitDepthKey比特率   8  16  24  32

         *  AVEncoderAudioQualityKey声音的质量  需要的是一个枚举

                      AVAudioQualityMin    = 0,

                      AVAudioQualityLow    = 0x20,

                      AVAudioQualityMedium = 0x40,

                      AVAudioQualityHigh   = 0x60,

                      AVAudioQualityMax    = 0x7F

         *  AVEncoderBitRateKey   音频编码的比特率 BPS传输速率  128000bps

         */

        [recorder prepareToRecord];

        [recorder record];

        NSLog(@"%@",path);

        

        

    }

    //录音结束的时候调用

    - (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{

    //    存储文件的位置

        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

    //    这里我门引用文件操作的类

        NSFileManager *manager = [NSFileManager defaultManager];

    //    获得所有路径下的文件

        NSArray *pathList = [manager subpathsAtPath:path];

        NSMutableArray *audiopathList = [NSMutableArray  array];

        for (NSString *audioPath in pathList) {

    //        通过对比延展名来区分是不是所需要的文件

            if ([audioPath.pathExtension isEqualToString:@"aiff" ]) {

    //            把筛选出来的文件放到数组中

                [audiopathList addObject:audioPath];

            }

        }

        NSLog(@"%@",audiopathList);

        

        

        

        

        

    }

     //一定要记住 、我是学过录音的,不能学过之后和没学过一样,实在是罪过罪古;;;;;;;;;

  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    MFC/.NET
    学习小结——记于华为2018届校园招聘宣讲会之后
    槽点今天未想到
  • 原文地址:https://www.cnblogs.com/Biaoac/p/5308469.html
Copyright © 2020-2023  润新知