• [已解决] AVAudioRecorder 录音,编码问题


    大家好,我想用AVAudioRecorder实现录音回放功能,其中

            NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];

            [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAMR] forKey:AVFormatIDKey];

            [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];

            [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];


            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,

                                                                 NSUserDomainMask, YES);

            NSString *documentsDirectory = [paths objectAtIndex:0];

            recordedTmpFile = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"test%d.%@",01, @"caf"]]];

            recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error];

            [recorder setDelegate:self];

            [recorder prepareToRecord];

            [recorder record];



    红色部分代码,iphone sdk只支持几种编码格式,当然不包括
    kAudioFormatAMR 我想知道,录音用什么格式,能够保证音效的情况下,使录音文件尽量小啊?

    下面是一些iPhone OS支持的音频回放格式:

    AAC
    HE-AAC
    AMR (Adaptive Multi-Rate,是一种语音格式)
    ALAC (Apple Lossless)
    iLBC (互联网Low Bitrate Codec,另一种语音格式)
    IMA4 (IMA/ADPCM)
    线性PCM (无压缩)
    µ-law和a-law
    MP3 (MPEG-1 音频第3层)
    下面是一些iPhone OS支持的音频录制格式:

    ALAC (Apple Lossless)
    iLBC (互联网Low Bitrate Codec,用于语音)
    IMA/ADPCM (IMA4)
    线性PCM
    µ-law和a-law
    下面的列表总结了iPhone OS如何支持单路或多路音频格式:

    线性PCM和IMA4 (IMA/ADPCM) 在iPhone OS上,您可以同时播放多路线性PCM或IMA4声音,而不会导致CPU资源的问题。这一点同样适用于AMR和iLBC语音品质格式,以及µ-law和a-law压缩格式。在使用压缩格式时,请检查声音的品质,确保满足您的需要。
    AAC、MP3、和ALAC (Apple Lossless) AAC、MP3、和ALAC声音的回放可以使用iPhone OS设备上高效的硬件解码,但是这些编解码器共用一个硬件路径,通过硬件,设备每次只能播放上述格式的一种。
    AAC、MP3、和ALAC的回放共用同一硬件路径的事实会对“合作播放”风格的应用程序(比如虚拟钢琴)产生影响。如果用户在iPod程序上播放上述三种格式之一的音频,则您的应用程序—如果要和该音频一起播放声音—需要使用软件解码。

  • 相关阅读:
    微信小程序 原生框架 (分享方法封装)
    JavaScript 正则表达式学习笔记
    JavaScript Date
    JavaScript String
    JavaScript Array
    前端开发缓存问题的解决方案
    参数验证
    html中的关于距离的总结大全
    Vuex的辅助函数mapState, mapActions, mapMutations用法
    Vue的内置组件transition
  • 原文地址:https://www.cnblogs.com/linyawen/p/2643450.html
Copyright © 2020-2023  润新知