音频(`AVAssetWriterInput` & `AVAudioRecorder`)最佳设置

Audio (`AVAssetWriterInput` & `AVAudioRecorder`) Optimal settings

我目前正在构建一个带有视频和音频录制(前景和背景)的应用程序。

我的客户报告说有些录音失败了,现在我检查了他们的日志,似乎在某些设备上编码设置不好。 我在整个网络上进行了搜索,以找到有关如何配置记录对象 AVAssetWriterInputAVAudioRecorder 的可靠信息来源。目前这是我对这两个对象的设置

        let recorderSettings: [String: Any] = [
            AVFormatIDKey: kAudioFormatMPEG4AAC,
            AVNumberOfChannelsKey: 2,
            AVSampleRateKey: 44100,
            AVEncoderBitRateKey: 64000,
            AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
        ]

任何帮助将不胜感激,谢谢

顺便说一句,这是我遇到的错误

"AssetWrtiting finished with 
Optional(Error Domain=AVFoundationErrorDomain Code=-11861
"Cannot Encode Media" 
UserInfo={NSLocalizedFailureReason=The encoding parameters are not supported.
NSLocalizedDescription=Cannot Encode Media,
NSUnderlyingError=0x2839b7750 {Error Domain=NSOSStatusErrorDomain Code=-12651 "(null)"}})

仅供参考,如果您遇到这个问题。

AVCaptureSession AVCaptureVideoDataOutput & AVCaptureAudioDataOutput 的输出有一个方法来获取推荐的记录设置,称为

func recommendedAudioSettingsForAssetWriter(writingTo outputFileType: AVFileType) -> [AnyHashable : Any]?