AVAssetWriter 录制的音频没有声音

问题描述

我的应用程序可以录制聊天中的音频并将其保存在文件中。我在应用程序屏幕上录制了一些音乐,但是当我播放 audio.m4a 文件时,没有声音出来。该文件显示为“Apple MPEG-4 音频”,大小为 12KB。是我设置错了吗?提前致谢。

编辑:我添加了停止录制功能

\n

解决方法

根据您的评论,您绝对不需要六声道音频。试试这些更简单的单声道音频设置。

let audioSettings: [String : Any] = [
    AVNumberOfChannelsKey: 1,AVFormatIDKey: kAudioFormatMPEG4AAC,AVSampleRateKey: 44100,AVEncoderBitRateKey: 128000,]

你没有说这是在 iOS 还是 macOS 上。您在 macOS 上遇到了问题,因为从 11.2.1 开始,没有捕获 .audioApp 缓冲区。如果你仍然想要麦克风,你可以配置:

let recorder = RPScreenRecorder.shared()
recorder.isMicrophoneEnabled = true
    
recorder.startCapture(handler: { (sample,bufferType,error) in
    if bufferType == .audioMic { 
       // etc
    }
})

不要费心检查写入器状态,只需在可以时附加缓冲区

if audioInput.isReadyForMoreMediaData {
    if !audioInput.append(sample) {
        // do something
    }
}

以前

您需要在某个时候调用 assetWriter.finishWriting

有趣的是,您有 6 通道输入。您使用的是特殊设备还是某种虚拟设备?