问题描述
当为Voip Flutter应用程序实现本机linphone iOS时,我遇到了一个问题。当然,应用程序必须使用callkit来通知有呼叫要来。当用户接听电话时,音频运行良好。但是,在那之后,我开始呼出并且没有声音。我尝试了许多解决方案,但没有用(延迟启动呼叫,强制设置活动AVAudioSession ...),但是没有运气,请帮助我处理这种情况。谢谢!
已测试设备:iPad pro 2020-iOS 14.1,iPhone 11-iOS 14.1
2020-11-03 12:27:28:484 liblinphone-error-Failed in creating AVAudioPlayer: The operation Couldn’t be completed. (Osstatus error 2003334207.)
Call incoming.
call coming objetc:
Optional(linphonesw.Call)
2020-11-03 12:27:28.486837+0700 Runner[673:109546] Flutter: call click in coming true
2020-11-03 12:27:28.486967+0700 Runner[673:109546] Flutter: incoming true
accept call objetc:
Optional(linphonesw.Call)
2020-11-03 12:27:28:487 ortp-warning-Fail to set IPv4 packet info on RTP socket: Invalid argument.
2020-11-03 12:27:28:487 ortp-warning-Fail to set IPv4 packet info on RTCP socket: Invalid argument.
We are connected !
2020-11-03 12:27:28:487 liblinphone-warning-Advanced adaptive rate control requested but avpf-tmmbr is not activated in this stream. Reverting to basic rate control instead
2020-11-03 12:27:28:487 ortp-warning-Fail to set IPv4 packet info on RTP socket: Invalid argument.
2020-11-03 12:27:28:487 ortp-warning-Fail to set IPv4 packet info on RTCP socket: Invalid argument.
2020-11-03 12:27:28:498 mediastreamer-error-Unable to activate audio session because : The operation Couldn’t be completed. (Osstatus error 561017449.)
2020-11-03 12:27:28:570 mediastreamer-warning-MSAudio MSTicker: We are late of 59 miliseconds.
2020-11-03 12:27:28:643 mediastreamer-warning-MSAudio MSTicker: We are late of 62 miliseconds.
2020-11-03 12:27:28:709 mediastreamer-warning-MSAudio MSTicker: We are late of 58 miliseconds.
2020-11-03 12:27:28:786 mediastreamer-warning-MSAudio MSTicker: We are late of 56 miliseconds.
2020-11-03 12:27:28.813295+0700 Runner[673:109315] [aurioc] AURemoteIO.cpp:1095:Initialize: Failed: 561017449 (enable 3,outf< 1 ch,48000 Hz,Int16> inf< 1 ch,Int16>)
2020-11-03 12:27:28:813 mediastreamer-error-Cannot start audioUnit because [!pri]
2020-11-03 12:27:28:813 mediastreamer-error-AudioUnit error for AudioUnitinitialize(card->audio_unit): ret=unkNown error (561017449) (/Users/belledonne/builds/2jexENcu/2/BC/public/linphone-sdk/mediastreamer2/src/audiofilters/msIoUnit.m:349)
2020-11-03 12:27:28.822813+0700 Runner[673:109315] [aurioc] AURemoteIO.cpp:1095:Initialize: Failed: 561017449 (enable 3,Int16>)
2020-11-03 12:27:28:822 mediastreamer-error-Cannot start audioUnit because [!pri]
2020-11-03 12:27:28:822 mediastreamer-error-AudioUnit error for (auresult = AudioOutputUnitStart(card->audio_unit)): ret=unkNown error (561017449) (/Users/belledonne/builds/2jexENcu/2/BC/public/linphone-sdk/mediastreamer2/src/audiofilters/msIoUnit.m:379)
2020-11-03 12:27:28.831621+0700 Runner[673:109315] [aurioc] AURemoteIO.cpp:1095:Initialize: Failed: 561017449 (enable 3,Int16>)
2020-11-03 12:27:28:831 mediastreamer-error-Cannot start audioUnit because [!pri]
2020-11-03 12:27:28:831 mediastreamer-error-AudioUnit error for AudioUnitinitialize(card->audio_unit): ret=unkNown error (561017449) (/Users/belledonne/builds/2jexENcu/2/BC/public/linphone-sdk/mediastreamer2/src/audiofilters/msIoUnit.m:349)
2020-11-03 12:27:28.839506+0700 Runner[673:109315] [aurioc] AURemoteIO.cpp:1095:Initialize: Failed: 561017449 (enable 3,Int16>)
2020-11-03 12:27:28:839 mediastreamer-error-Cannot start audioUnit because [!pri]
2020-11-03 12:27:28:839 mediastreamer-error-AudioUnit error for (auresult = AudioOutputUnitStart(card->audio_unit)): ret=unkNown error (561017449) (/Users/belledonne/builds/2jexENcu/2/BC/public/linphone-sdk/mediastreamer2/src/audiofilters/msIoUnit.m:379)
解决方法
这通常是由于与Callkit集成错误引起的。 实际上,必须根据某些规则协调liblinphone和callkit操作,以便iOS系统授予使用音频设备的权限。 请参考liblinphone的相关文档:
https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Getting%20started/iOS/#HCallKitintegration
最诚挚的问候,
西蒙