取消GSM通话后,Callkit变成静音,我听不到声音

问题描述 投票:0回答:1

我检查了许多类似的问题,但没有任何答案...

我正在使用Callkit,它工作正常。但是问题是,当GSM呼叫到达并且我的VOIP呼叫保持呼叫,然后当我单击以交换Callkit的按钮以取消保留我的呼叫时,unHold请求正确发送,但是问题是声音在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的控制权?

谢谢

我检查了许多类似的问题,但没有任何答案。。。我正在使用Callkit,它工作正常。但是问题是,当GSM呼叫到达并且我的VOIP呼叫保持呼叫,然后单击以交换时...

objective-c callkit
1个回答
0
投票

事实上,您正在生成一个无限循环:在- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action函数中,在未保持状态下,您正在调用- (void)holdCall:(BOOL)hold,这又将无限期地生成另一个对- (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action的调用,依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.