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

标签 ios objective-c iphone avfoundation avaudioengine

正如标题所示。

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/

相关文章:

ios - 从本地 NSURL 转换 NSData

ios - 正在调用委托(delegate)方法但未正确执行

ios - 智能地滚动图像

iphone - 如何将 nil 添加到 nsmutablearray?

iphone - NSMutableArray 和 NSPredicate 过滤

iphone - iPad视网膜图像-为什么使用两种不同的图像尺寸?

ios - 在 IOS 中使用 AES 加密

ios - iOS环境变量在哪里设置?

ios - NSAppleMusicUsageDescription - 缺少 Info.plist 键

iPhone开发: Grabbing selected/highlighted text on UIWebView