AVAssetWriter 录制的音频没有声音

时间:2021-02-10 06:21:05

标签: swift avassetwriter replaykit

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

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

\n

1 个答案:

答案 0 :(得分:2)

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

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 通道输入。您使用的是特殊设备还是某种虚拟设备?