gpt4 book ai didi

ios - 将 AVAudioPCMBuffer 转换为 NSData

转载 作者:行者123 更新时间:2023-11-30 11:36:46 30 4
gpt4 key购买 nike

我目前正在尝试转换 AVAudioPCMBuffer 中的音频样本至NSData - 我已经查看了关于此的已接受答案SO Post还有这个code from GitHub但似乎有一些AVFAudio API 已更改...以下是我的 AVAudioPCMBuffer 的扩展名:

private extension AVAudioPCMBuffer {

func toNSData() -> NSData {
let channels = UnsafeBufferPointer(start: int16ChannelData, count: 1)
let ch0Data = NSData(bytes: channels[0], length:Int(frameCapacity * format.streamDescription.inTotalBitsPerChannel))

return ch0Data
}

}

我看到错误 Value of type 'UnsafePointer<AudioStreamBasicDescription>' has no member 'inTotalBitsPerChannel' 。到目前为止,我还没有找到任何其他方法来查找 inTotalBitsPerChannel值(value)...任何帮助表示赞赏!

最佳答案

在您链接到的代码示例中,我没有看到任何名为 inTotalBitsPerChannel 的方法;相反,它们似乎都使用mBytesPerFrame。您还需要 .pointee 来取消引用指针。最后,在现代 Swift 中,您通常应该更喜欢使用 Data 而不是 NSData。所以,基本上,我认为如果您将最后一行重写为:

,您的扩展应该可以工作
let ch0Data = Data(bytes: channels[0], count: Int(frameCapacity * format.streamDescription.pointee.mBytesPerFrame))

关于ios - 将 AVAudioPCMBuffer 转换为 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49677123/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com