检查音频系统是不是正在使用
Posted
技术标签:
【中文标题】检查音频系统是不是正在使用【英文标题】:check if audio system is in use检查音频系统是否正在使用 【发布时间】:2012-03-22 21:02:51 【问题描述】:有没有办法以编程方式检查音频系统是否专门用于 iPhone?如果应用程序在 FaceTime 或手机通话处于活动状态时尝试使用音频系统,则在尝试启动音频时会出错。我想在尝试启动音频之前检查音频系统是否被独占使用。
我正在开发的应用是 VOIP 类型的应用。当有来电时,我想在允许接听电话之前检查音频系统是否可用。我试过 CTCallCenter,它适用于手机通话,但 FaceTime 通话并没有显示在那里。
谢谢, 康威
【问题讨论】:
【参考方案1】:您不能在检测到来电后立即初始化音频输入,并在用户接听电话后启动队列吗?
【讨论】:
这可以工作,但它意味着我们的音频代码的重新工作。现在,我只允许接听电话,如果音频初始化失败,我会挂断电话并显示错误消息。【参考方案2】:查看音频会话文档中的中断处理委托。
https://developer.apple.com/Library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html
如果您在 beginInterruption 和 endInterruption 方法之间,您可以在您的应用中设置一个标志来阻止应答您的语音呼叫。
【讨论】:
beginInterruption 和 endInterruption 存在一些问题: 第一个问题:它们不是成对出现的,所以在某些时候我最后一次收到了 beginInterruption 但没有收到 endInterruption;然后我的应用程序认为它经常被中断。第二个问题:中断机制无法区分不可中断音频(手机和通话)和可中断音频(音乐播放器)。 很抱歉听到您仍有问题。如果您找到一个不错的解决方案,请发布它。我很想听听。 该链接不再有效,此答案已过时。 我更新了链接。AVAudioSession
似乎没有被弃用,那么为什么这个已经过时了?如果有更好的方法,请考虑发布新答案。以上是关于检查音频系统是不是正在使用的主要内容,如果未能解决你的问题,请参考以下文章