如何在 Objective-C 中将 AVAudioPCMBuffer 转换为 NSData



正如标题所暗示的那样。

这里有一个 Swift 中的旧解决方案。但是我很难转换为Objective-C。似乎没有Objective-C等价物UnsafeBufferPointer

Objective-C 在语言中内置了不安全的指针,因此转换只是:

- (NSData *)bufferToNSData:(AVAudioPCMBuffer *)buffer {
    return [[NSData alloc] initWithBytes:buffer.floatChannelData[0] length:buffer.frameLength * 4];
}

注意:这假设缓冲区中有单声道 32 位浮点数据。需要做更多的工作才能将所有受支持的AVAudioPCMBuffer格式序列化为 NSData

最新更新