我有一个视频录制应用程序。一切正常。录音时接到电话的情况除外。

当接到电话时,我尝试结束录音,但是,我的任何写入AVAssetWriter的电话都被拒绝。[医]音频输入 appendSampleBuffer 返回no, appendPixelBuffer 出错了。我试着打电话给avAssetWriter finishWriting 但这又回来了 AVAssetWriterStatusFailed.

没有任何工作,我的视频被损坏,因为似乎我通常的方法来完成一个录音会话不被允许,一旦收到一个电话。

当接到电话时,我可以听什么来正确地结束录音会话?我现在唯一能做的就是听 applicationWillResignActive 并停止一切,但这会阻止在用户收到短信等时进行记录。这将使我的应用程序的工作方式不同于本机相机应用程序。

有帮助吗?

解决方案

看看 核心电话 框架,特别是 CTCallCenter 类。您可以注册 callEventHandler 这是一个接受 CTCall 对象。此对象描述调用状态。当呼叫对象指示它是一个传入呼叫时,尝试结束录音.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top