美文网首页
iOS 音频框架AudioUnit

iOS 音频框架AudioUnit

作者: _RG | 来源:发表于2020-05-11 18:10 被阅读0次

    AudioComponentDescription结构体 描述AudioUnit 类型

    AudioComponentDescription有如下属性
    componentType 大类别

    kAudioUnitType_Effect  描述音特效处理的功能
    
     子类型包含
    均衡效果器 kAudioUnitSubType_NBandEQ  
    (主要作用是为声音的某些频带增强或者减弱能量,
    该效果器需要指定多个频带,
    然后为各个频带设置宽度以及增益,
    最终将改变声音在频域上的能量分布 )
    
    压缩效果器 kAudioUnitSubType_DynamicsProcessor 
    (当声音较小的时候可以提高声音的能量,
    当声音的能量超过了设置的阈值时,
    可以降低声音的能量,
    当然应合理地设置作用时间、释放时间以及触发值,
    使得最终可以将声音在时域上的能量压缩到一定范围之内 )
    
    混响效果器 kAudioUnitSubType_Reverb2
    (对于人声处理来讲这是非常重要的效果器,
    可以想象自己身处在一个空房子中,
    如果有非常多的反射声和原始声音叠加在一起,
    那么从听感上可能会更有震撼力,
    但是同时原始声音也会变得更加模糊,
    原始声音的一些细节会被遮盖掉,
    所以混响设置的大或者小对于不同的人来讲会很不一致,
    可以根据自己的喜好来进行设置)
    
    
    kAudioUnitType_Mixer    提供Mix多路声音的功能
    
    子类型包含
    多路声音混音的效果器 kAudioUnitSubType_MultiChannelMixer   
    (可以接收多路音频的输入,
    还可以分别调整每一路音频的增益与开关,
    并将多路音频合并成一路,
    该效果器在处理音频的图状结构中非常有用)
    
    
    I/O的功能  kAudioUnitType_Output
    
    子类型包含
    采集音频与播放音频  kAudioUnitSubType_RemoteIO
    
    kAudioUnitSubType_GenericOutput
    (离线处理,或者说在AUGraph中不使用Speaker(扬声器)来驱动整个数据流,
    而是希望使用一个输出(可以放入内存队列或者进行磁盘I/O操作)来驱动数据流时,就使用该子类型)
    
    
     kAudioUnitType_FormatConverter 提供格式转换的功能 
    (采样格式由Float到SInt16的转换、
    交错和平铺的格式转换、单双声道的转换等)
    
    子类型包含
    kAudioUnitSubType_AUConverter 
    (当某些效果器对输入的音频格式有明确的要求时(比如3D Mixer Unit就必须使用UInt16格式的sample),
    或者开发者将音频数据输入给一些其他的编码器进行编码,
    又或者开发者想使用SInt16格式的PCM裸数据在其他CPU上进行音频算法计算等的场景下,
    就需要使用到这个ConverterNode了 )
    
    kAudioUnitSubType_NewTimePitch  变速变调效果器
    (可以对声音的音高、速度进行调整,像“会说话的Tom猫”类似的应用场景就可以使用这个效果器来实现 )
    
    kAudioUnitSubType_Splitter
    (一个音频单元,提供2条输出总线和1条输入总线。 
    音频单元将输入信号分离(复制)到两个输出总线)
    
    
    kAudioUnitType_Generator  播放器的功能
    
    子类型包含
    kAudioUnitSubType_AudioFilePlayer
    (在AudioUnit里面,如果我们的输入不是麦克风,而希望其是一个媒体文件)
    
    

    相关文章

      网友评论

          本文标题:iOS 音频框架AudioUnit

          本文链接:https://www.haomeiwen.com/subject/kqlzwhtx.html