【发布时间】:2017-09-28 10:03:37
【问题描述】:
我已经搜索过这个错误,但没有发现任何人有同样的错误。我很确定我知道这个错误意味着什么,但我不知道如何避免它。
基本上发生的事情是我通过 MultipeerConnectivity 打了一个电话。我正在使用 AVAudioEngine 来录制音频并播放来自对等方的音频。
我注意到用户说话的时间与其他设备播放该音频所需的时间之间存在相当大的延迟,但我通过移除水龙头并重新安装它解决了这个问题。这完全消除了任何延迟。但是,有时它会引发错误。
我还允许用户将他们的麦克风静音,当他们点击静音时,点击会被移除。一旦他们单击取消静音,就会重新安装水龙头。有时这也会引发同样的错误:
AVAudioEngineGraph.mm:2707:InputAvailable:必需条件为假:NULL != tap
这个错误似乎是完全随机的。有时会发生,有时不会。我无法始终如一地重现该错误。
我的猜测是,这是因为它试图在已经存在水龙头的地方安装水龙头,但我不知道如何避免。我想我可以增加正在安装水龙头的总线,但这似乎不是最好的选择。
我还查看了 AVAudioInputNode 上是否有一个属性,它会告诉我是否已经在特定总线上安装了一个水龙头,但我似乎没有找到任何东西。
有人对这个问题有任何经验吗?
【问题讨论】:
-
我也坚持这个问题。
-
@NileshParmar 我还没有找到解决方案。如果我这样做了,我会更新发布这个问题的答案。
-
好的,谢谢,请尽快更新。
-
@NileshParmar 和你一样,如果你在我之前找到解决方案的话。谢谢。
-
你好,你找到解决办法了吗?
标签: ios swift audio avaudioplayer avaudiosession