首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将AVAudioPCMBuffer转换为NSData

将AVAudioPCMBuffer转换为NSData
EN

Stack Overflow用户
提问于 2018-04-05 16:21:16
回答 1查看 1.2K关注 0票数 0

目前,我正在尝试将音频示例从AVAudioPCMBuffer转换为NSData --我已经查看了这个所以波斯特和这个GitHub代码上被接受的答案,但是似乎有一些AVFAudio API的有changed...below是对AVAudioPCMBuffer的扩展

代码语言:javascript
复制
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...any帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-05 16:50:46

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

代码语言:javascript
复制
let ch0Data = Data(bytes: channels[0], count: Int(frameCapacity * format.streamDescription.pointee.mBytesPerFrame))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49677123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档