gpt4 book ai didi

ios - AVAudioPCMBuffer - 读取(进入缓冲区 : AVAudioPCMBuffer) memory crash?(缓冲区溢出)

转载 作者:行者123 更新时间:2023-11-28 08:03:47 24 4
gpt4 key购买 nike

以下代码适用于我所有设备(iPhone、Apple Watch、模拟器)上持续时间较短的音频文件:

let file = try! AVAudioFile(用于阅读:url!)
let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: file.fileFormat.sampleRate, channels: file.fileFormat.channelCount, interleaved: false)
让 buf = AVAudioPCMBuffer(pcmFormat: 格式!, frameCapacity: UInt32(file.length))
尝试! file.read(进入:buf!)

崩溃发生在try! file.read(into: buf!)然而,尝试读取一个 5 分钟的长音频文件会导致我的 Apple Watch 运行崩溃(尽管可以在 Apple Watch Simulator 上运行)。 程序以退出代码结束:0

观察调试工具,显然这个过程在 Apple Watch 上比在 iPhone 上要费力得多。我试图在不同的线程、背景等上运行它,但无济于事。

我知道我可以将缓冲区发送到 iPhone 进行处理,但是我想看看(即使需要更长的时间)我是否可以严格地从 watch 读取缓冲区。

最佳答案

44.1kHz 的 5 分钟单声道 LPCM float32 音频将是 5*60*44100*4 字节,或大约 53MB。双倍立体声。我不知道 watch 的内存限制是多少,但我认为你超出了它们。

关于ios - AVAudioPCMBuffer - 读取(进入缓冲区 : AVAudioPCMBuffer) memory crash?(缓冲区溢出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45776633/

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