AVAssetWriter 不适用于 AVAudioSession 的视频聊天模式(仅限 iPhone 14 Pro)

AVAssetWriter not working with videoChat mode of AVAudioSession (iPhone 14 Pro only)

提问人:Adeel Abbas 提问时间:12/1/2022 更新时间:12/1/2022 访问量:81

问:

我有一个视频会议应用程序,我们正在将 AVAudioSession 设置为 videoChat,以便我们可以获得回声消除。

let options: AVAudioSession.CategoryOptions = [.mixWithOthers , .defaultToSpeaker, .allowBluetooth]
try session.setCategory(.playAndRecord, mode: .videoChat, options: options)

我还想使用 AVAssetWriter API 对音频样本进行本地录制。AssertWriter 的设置如下:

let audioAssetWriter = try AVAssetWriter(outputURL: fileURL, fileType: .m4a)
     
let settings: [String: Any] = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: Int(audioParameters.samplingRate),
AVEncoderBitRateKey: Int(audioParameters.bitrate),
AVNumberOfChannelsKey: Int(audioParameters.channels),
AVEncoderAudioQualityKey: AVAudioQuality.max.rawValue
]
       
let assetWriterAudioInput = AVAssetWriterInput(mediaType: .audio, outputSettings: settings)
assetWriterAudioInput.expectsMediaDataInRealTime = true
audioAssetWriter.add(assetWriterAudioInput)

我在 iPhone 14 Pro 上看到了这一点,

assetWriterAudioInput.append()

正在失败。在 iPhone 13 和更旧的设备上一切正常。

还有其他人在 iPhone 14 Pro 上看到这个问题吗?

AVAudioSession 视频聊天 阿瓦塞特作家输入

评论

0赞 Gordon Childs 12/1/2022
您确定与要附加的样品缓冲液匹配吗? 并且应该在追加失败时告诉您一些事情。他们怎么说?AVAssetWriterInputoutputSettingsAVAssetWriter.statusAVAssetWriter.error
0赞 Adeel Abbas 12/2/2022
我还尝试调用以获取推荐的设置,然后将这些设置提供给构造函数 - 但这无济于事AVCaptureAudioDataOutput.recommendedAudioSettingsForAssetWriter(writingTo: .m4a)AVAssetWriterInput
0赞 Adeel Abbas 12/2/2022
AVAssetWriter.status 为 .failed,AVAssetWriter.error 代码为 -11800(无法完成操作)
0赞 Gordon Childs 12/3/2022
该日志中还有其他文本吗? 是“外部”错误。它通常包装一个“内部”错误。-11800 = AVErrorUnknown

答: 暂无答案