InstallTapOnBus - 用于输出信号

时间:2017-03-15 22:32:30

标签: ios swift audio avfoundation avaudioengine

与主题主题一样,我想分析输出信号的缓冲区。我已将此功能(InstallTapOnBus)用于麦克风信号,但我不能用于输出。有谁知道怎么做?

    let bus = 0 
    let node = engine.outputNode
    node.installTap(onBus: bus, bufferSize: AVAudioFrameCount(BUFFER_SIZE), format: node.outputFormat(forBus: bus), block: { (buffer : AVAudioPCMBuffer ,time : AVAudioTime) in

        ...

    })
    try! engine.start()
}

它给我一个错误:"必需条件为false:_isInput"

2 个答案:

答案 0 :(得分:0)

您是否尝试直接点击调音台而不是麦克风?

Microphone-to-mixer-to-output with Mixer Tap

答案 1 :(得分:0)

尝试使用mainMixerNode而不是outputNode。

这对我有用(iOS 12):

let outputNode = self.audioEngine.mainMixerNode let format = self.audioEngine.mainMixerNode.outputFormat(forBus: 0)

然后像您一样在mainMixerNode上进行installTap。