AudioKit和AVAssetWriter发生冲突?仅在第一张唱片上没有音频

时间:2017-12-21 10:21:42

标签: ios audio audio-recording avassetwriter audiokit

上下文 我在我的应用程序中使用AudioKit和GPUImage2。 我有一个第一个屏幕(录制)来预览和录制相机。 我有第二个屏幕(播放)来播放录制的电影和处理音频(使用AudioKit)

在录制屏幕上,GPUImage2使用简单的AVAssetWriter来捕获视频和音频。用这个简单的代码记录音频:

guard (assetWriterAudioInput.isReadyForMoreMediaDatav) else {
     return
}

if (!assetWriterAudioInput.append(sampleBuffer)) {
     print("Trouble appending audio sample buffer")
} else {
}

此代码被调用,而assetWriterAudioInput不是nil。

在Play屏幕上,我启动了两个播放器,一个用于视频的静音AVPlayer和一个用于音频(待处理)的AKAudioPlayer,其中包含与源相同的文件。

如果删除两个注释不会影响我的问题。

  • 在录制过程中,我使用AKAudioPlayer在用户语音之上播放音乐。
  • 在播放过程中,我将音乐放在带有录音的混音器上(所以2 AKAudioPlayer进入1输出AKMixer)

在录制过程中,我使用AKAudioPlayer在用户语音之上播放音乐。 注意:在播放过程中,我将音乐放在带有录音的混音器上(所以2 AKAudioPlayer进入1输出AKMixer)

我的问题是:

当我第一次录制时,我只在Play屏幕上看到视频,没有录制音频。当我听到我添加的音乐时,调音台工作正常。

当我再次开始(回到录制屏幕的动作)时,我正常录制并在播放屏幕上,一切正常 - >视频播放,语音+音乐播放。

有人可以帮我解决这个问题吗?

如果它可以提供帮助,我使用的AudioSessionCategory是 PlaybackCategory ,它在应用程序生命周期中永远不会改变,因此在第一个和下一个记录中也是如此。它只会在应用程序启动时从Ambient更改为Playback,因为我让扬声器在物理静音按钮处于活动状态时播放。

0 个答案:

没有答案