В методе Objective-C, который я использую для распознавания речи, у меня есть некоторый код для измерения громкости динамика.Однако, когда я пытаюсь перевести его на Swift, у меня возникают проблемы с тем, как Swift обрабатывает указатели относительно Objective-C.
Вот пример Доу Objective-C:
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]
}
выдает несколько ошибок.
Заранее благодарим за любые предложения.