正如标题所示。
Swift 中有一个旧的解决方案 here .但是我很难转换到 Objective-C。似乎没有 Objective-C 等同于 UnsafeBufferPointer
最佳答案
Objective-C 在语言中内置了不安全的指针,所以转换简单地变成了:
- (NSData *)bufferToNSData:(AVAudioPCMBuffer *)buffer {
return [[NSData alloc] initWithBytes:buffer.floatChannelData[0] length:buffer.frameLength * 4];
}
注意这假定缓冲区中的单声道 32 位 float 据。需要做更多的工作来将所有支持的 AVAudioPCMBuffer
格式序列化为 NSData
。
关于ios - 如何在 Objective-C 中将 AVAudioPCMBuffer 转换为 NSData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49922108/