当发生 AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient 时 AVCaptureSession 不在 ios 中录制视

Posted

技术标签:

【中文标题】当发生 AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient 时 AVCaptureSession 不在 ios 中录制视频【英文标题】:When AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient is occured AVCaptureSession is not recording video in ios 【发布时间】:2017-01-28 09:27:34 【问题描述】:

在 AVCaptureSession 运行期间,当发生电话呼叫时,我因原因 AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient 而中断,我调用了 [captureSession beginConfiguration] 并删除了 AVMediaTypeAudio 的 AVCaptureDeviceInput,最后使用 [captureSession commitConfiguration] 和 [captureSession startRunning ] 但我无法录制输出为 AVCaptureMovieFileOutput 的视频。请帮忙。谢谢

【问题讨论】:

【参考方案1】:

我在使用 GPUImage 时遇到了类似的问题。以下代码完成了工作: 首先移除音频输出和输入:

[_captureSession beginConfiguration];
[_captureSession removeInput:audioInput];
[_captureSession removeOutput:audioOutput];
audioInput = nil;
audioOutput = nil;
_microphone = nil;
[_captureSession commitConfiguration];

然后重启会话

[_captureSession startRunning];

我认为您缺少的部分是删除输出。

【讨论】:

以上是关于当发生 AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient 时 AVCaptureSession 不在 ios 中录制视的主要内容,如果未能解决你的问题,请参考以下文章

RAFT:当Leader在操作过程中发生变化时会发生啥

当设备进入睡眠状态时服务会发生啥

当多个线程想要访问 ReentrantReadWriteLock 时会发生啥?

当视图开始被隐藏时,约束会发生啥?

当堆栈和堆碰撞时会发生啥

当 Redis 发生高延迟时,到底发生了什么