问题描述
我目前正在构建一个带有视频和音频记录(前景和背景)的应用。
我的客户报告说有些录音失败,现在我检查了他们的日志,似乎在某些设备上编码设置不好。
我在整个网络上进行了搜索,以找到有关如何配置录制对象 AVAssetWriterInput
和 AVAudioRecorder
的不错的信息来源。目前这是我对两个对象的设置
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]?