通话时 AVCaptureSession 的“空白”音频

Posted

技术标签:

【中文标题】通话时 AVCaptureSession 的“空白”音频【英文标题】:"blank" audio for a AVCaptureSession while on a call 【发布时间】:2013-02-01 22:34:39 【问题描述】:

我有一个AVCaptureSession 使用 2 个AVCaptureDeviceInput。第一个是AVCaptureDevicePositionFront,第二个是[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]

这通常工作得很好,但是当我在通话时,麦克风正在使用(显然)。 有什么方法可以将“空白”音轨应用到AVCaptureSession?如果需要,我可以使用其他一些解决方法,但与 AVCaptureSession 集成会很好,因为这样我当前的所有代码都可以保持不变。

我已尝试将 AVCaptureDevice 子类化并始终为 supportsAVCaptureSessionPreset: 返回 YES,但这是可以预见的失败。

视频会实时(通过 RTMP)流式传输到服务器,因此之后添加音频并不是一个真正的选择。在 nginx RTMP 服务器中添加音频似乎不太现实,所以我希望在设备上解决这个问题。

【问题讨论】:

【参考方案1】:

我最终找到了服务器端解决方案。

服务器必须与初始视频包一起发送初始音频包。

对于它的价值,我正在使用nginx-rtmp-module。 This commit 是解决我的问题的具体提交。

【讨论】:

以上是关于通话时 AVCaptureSession 的“空白”音频的主要内容,如果未能解决你的问题,请参考以下文章

Phonertc 演示仅在通话开始时显示空白屏幕

离开 ViewController 时停止 AVCaptureSession

AVCaptureSession 处于活动状态时的 AudioServicesPlaySystemSound

UIViewController 通话状态栏问题

使用 AVCaptureSession 录制时发送视频数据

当音频输入添加到 AVCaptureSession 时 AVAudioPlayer 停止