gpt4 book ai didi

iphone - 如何在 iOS 上的 PJSIP 通话中实现静音功能

转载 作者:行者123 更新时间:2023-12-03 18:43:54 26 4
gpt4 key购买 nike

我想在通话中实现静音按钮。我正在开发 iPhone 的 VOIP 应用程序。现在,当有电话打来并且用户接听时,我想显示一个静音按钮,以便用户可以将调用或 session 静音。我通过 PJSIP API 做了同样的事情。

-(int) mutethecall
{
pj_status_t status = pjsua_conf_adjust_rx_level (0,0);
status = pjsua_conf_adjust_tx_level (0,0);
return (PJ_SUCCESS == status);
}
-(int) unmutethecall
{
pj_status_t status = pjsua_conf_adjust_rx_level (0,1);
status = pjsua_conf_adjust_tx_level (0,1);
return (PJ_SUCCESS == status);
}

问题是,虽然此代码适用于一对一通话,但不适用于 session 场景。

我想知道是否可以直接关闭麦克风:我可以使用 iOS 绕过 PJSIP API 来实现相同的功能吗?

这可能吗?

最佳答案

当您想要取消静音时,可以使用 pjsua_conf_disconnect 和 pjsua_conf_connect 完全断开麦克风与 session 的连接。

下面是一些可以实现这一目的的 Objective-C 代码:

+(void)muteMicrophone
{
@try {
if( pjsipConfAudioId != 0 ) {
NSLog(@"WC_SIPServer microphone disconnected from call");
pjsua_conf_disconnect(0, pjsipConfAudioId);
}
}
@catch (NSException *exception) {
NSLog(@"Unable to mute microphone: %@", exception);
}
}

+(void)unmuteMicrophone
{
@try {
if( pjsipConfAudioId != 0 ) {
NSLog(@"WC_SIPServer microphone reconnected to call");
pjsua_conf_connect(0,pjsipConfAudioId);
}
}
@catch (NSException *exception) {
NSLog(@"Unable to un-mute microphone: %@", exception);
}
}

请注意,在建立调用时会检索 pjsipConfAudioID,同样是在 Objective-C 中...

static void on_call_state(pjsua_call_id call_id, pjsip_event *e)
{
pjsua_call_info ci;
PJ_UNUSED_ARG(e);
pjsua_call_get_info(call_id, &ci);
pjsipConfAudioId = ci.conf_slot;
...
}

希望有帮助!

关于iphone - 如何在 iOS 上的 PJSIP 通话中实现静音功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com