当前位置: 首页 > 工具软件 > AudioKit > 使用案例 >

java 获取麦克_AudioKit - 如何从麦克风获取实时floatChannelData?

周云
2023-12-01

使用您想要从中获取数据的节点 . 我在上面的引文中使用了AKNodeOutputPlot,因为它非常简单,只是将该数据用作绘图的输入,但是您可以获取数据并对其执行任何操作 . 在此代码中(来自AKNodeOutputPlot):

internal func setupNode(_ input: AKNode?) {

if !isConnected {

input?.avAudioNode.installTap(

onBus: 0,

bufferSize: bufferSize,

format: nil) { [weak self] (buffer, _) in

guard let strongSelf = self else {

AKLog("Unable to create strong reference to self")

return

}

buffer.frameLength = strongSelf.bufferSize

let offset = Int(buffer.frameCapacity - buffer.frameLength)

if let tail = buffer.floatChannelData?[0] {

strongSelf.updateBuffer(&tail[offset], withBufferSize: strongSelf.bufferSize)

}

}

}

isConnected = true

}

您可以实时获取缓冲区数据 . 在这里,我们只是将它发送到“updateBuffer”,在那里它被绘制,但不是绘图,你会做其他事情 .

 类似资料: