objective-c - Unhold GSM 通话后,Callkit 变成静音,我听不到任何声音
问题描述
我检查了许多类似的问题,但没有任何答案...
我正在使用 Callkit,它工作正常。但问题是当 GSM 呼叫到达并且我的 VOIP 呼叫保持通话,然后当我单击 Callkit 的交换按钮以取消保持我的呼叫时,取消保持请求正确发送但问题是声音在 Callkit 中变成静音并且没有 -什么都听不见。。
- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action {
if (action.isOnHold) {
NSLog(@"Call on hold");
} else {
[self holdCall:NO];
}
[action fulfill];
}
- (void)holdCall:(BOOL)hold {
NSLog(@"What is current call uuid %@",self.currentCallUUID);
CXSetHeldCallAction *holdCallAction = [[CXSetHeldCallAction alloc] initWithCallUUID:self.currentCallUUID onHold:hold];
CXTransaction *transaction = [[CXTransaction alloc] init];
[transaction addAction:holdCallAction];
[self requestTransaction:transaction];
}
当我调用 unHold 方法时,它会进入一种无限循环……任何人都有同样的问题,或者我如何解除 Callkit?
谢谢
解决方案
实际上,您正在生成一个无限循环:在- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action
函数中,在 unhold 的情况下,您调用- (void)holdCall:(BOOL)hold
它又会生成对 的另一个调用- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action
,依此类推。
所以,你只需要删除[self holdCall:NO];
里面- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action
推荐阅读
- android - 如何使用预先选择的日期使 calendarView 可见但不可编辑
- python - 验证架构中的“必需”失败['properties']['rasa_nlu_data']['properties']['common_examples']['items']['properties']['entities']['items']:
- r - 用gmapsdistance计算R中的旅行时间
- javascript - 在 appium 中拖放更快
- python - 如何使用正则表达式将子字符串分配给变量?
- php - 在将我的 laravel 6 项目上传到 000webhosting 时,出现如下错误:
- python - 根据列绘制不同颜色的线
- spring - 无法连接到 Command Metric Stream。在 Hystrix 仪表板问题中
- authentication - 当使用 JWT 进行身份验证时,自定义范围(权限/声明)应该进入访问令牌还是 id 令牌?
- python - Can I use Node.js for the back end and Python for the AI calculations?