在我用于语音识别的Objective-C方法中,我有一些代码来测量说话人的音量。然而,当我试图将它翻译成Swift时,我遇到了Swift如何处理与Objective-C相关的指针的问题。
以下是Objective-C doe:
AVAudioFormat *recordingFormat = [inputNode outputFormatForBus:0];
[inputNode installTapOnBus:0 bufferSize:1024 format:recordingFormat block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) {
if ([buffer floatChannelData] != nil) {//open 1 in block
float volume = fabsf(*buffer.floatChannelData[0]);
}
}];
在Swift中尝试这样做:
let data = UnsafeMutablePointer<Float>(buffer.floatChannelData)
if let data = &buffer.floatChannelData?[0] {
let _ : Float = data[0]
}
提前谢谢你的建议。