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

时间:2018-04-19 13:15:48

标签: ios objective-c iphone avfoundation avaudioengine

正如标题所示。

Swift here中有一个旧解决方案。但我很难转换为Objective-C。似乎没有与UnsafeBufferPointer

等效的Objective-C

1 个答案:

答案 0 :(得分:0)

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

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

N.B。这假设缓冲区中有单声道32位浮点数据。需要完成更多工作才能将所有支持的AVAudioPCMBuffer格式序列化为NSData