870920 Menu

AudioProcessor类群详解 5-2

AudioProcessorListener

AudioProcessor可绑定捕获器,该捕获器为AudioProcessorListener类。该类有两个纯虚函数:
 audioProcessorParameterChanged () 处理器的参数改变时自动回调此函数
 audioProcessorChanged () 处理器本身改变时自动回调此函数

AudioPlayHead

AudioProcessor类的setPlayHead()函数可设置本次处理的起点位置,该信息由AudioPlayHead类来表示。该类是一个抽象基类,其仅有的纯虚函数为:
 getCurrentPosition(CurrentPositionInfo对象) 返回当前位置

AudioPlayHead::CurrentPositionInfo
AudioPlayHead::CurrentPositionInfo为AudioPlayHead的嵌套结构体,也是AudioPlayHead类的纯虚函数getCurrentPosition()的参数类型。其public数据成员为:
 double bpm 音乐速度, 每分钟的拍数
 int timeSigNumerator 每小节有几拍。比如:3/4拍的3
 int timeSigDenominator 每几分音符为一拍。比如:3/4拍的4
 double timeInSeconds 当前的播放位置,从开始处算起的秒数
 double editOriginTime 开始处的时间码,00:00:00:00中的秒数
 double ppqPosition 当前的播放位置,PPQ值(每四分音符的嘀嗒)
 double ppqPositionOfLastBarStart 最后一个小节开始处的位置,PPQ值
 bool isPlaying 当前是否正在播放
 bool isRecording 当前是否正在录音
 double ppqLoopStart 当前循环的开始点(PPQ)
 double ppqLoopEnd 当前循环的结束点(PPQ)
 bool isLooping 音频来源当前是否处于循环模式
 FrameRateType frameRate 视频帧率

最后一个数据成员为FrameRateType枚举,代表不同的帧率。该枚举定义于AudioPlayHead类:
 AudioPlayHead::fps24 = 0
 AudioPlayHead::fps25 = 1
 AudioPlayHead::fps2997 = 2
 AudioPlayHead::fps30 = 3
 AudioPlayHead::fps2997drop = 4
 AudioPlayHead::fps30drop = 5
 AudioPlayHead::fpsUnknown = 99