AVAudioConverter 在 iOS 10 中损坏

2024-03-13

AVAudioConverter 在 iOS 10 中似乎损坏了。该代码在 iOS 9 中工作,现在

错误域=NSOSStatusErrorDomain 代码=-50“(空)”

无论使用什么音频格式都会返回。每年,基本的库功能停止工作都让我感到惊讶。

func audioConverterFailureIOS10() {
    // Describe the audio format
    let inFormat = AVAudioFormat(standardFormatWithSampleRate: 44100, channels: 2)
    let outFormat = AVAudioFormat(standardFormatWithSampleRate: 22050, channels: 2)

    // Allocate buffers
    let outBuffer = AVAudioPCMBuffer(pcmFormat: outFormat, frameCapacity: 1024)

    // Create an input block that is called when the converter needs input
    let inputBlock : AVAudioConverterInputBlock = { (inNumPackets, outStatus) -> AVAudioBuffer? in
        // Fails before entering here
        return nil
    }

    // Create the audio converter
    let converter = AVAudioConverter(from: inFormat, to: outFormat)

    var error : NSError?
    _ = converter.convert(to: outBuffer, error: &error, withInputFrom: inputBlock)

    // Error Domain=NSOSStatusErrorDomain Code=-50 "(null)"
    print(error)
}

因此,结果必须将 outBufferframeLength 设置为frameCapacity。默认情况下,长度为 0,并且在 iOS 10 上显然有不同的处理方式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVAudioConverter 在 iOS 10 中损坏 的相关文章

随机推荐