我正在使用PJSUA在android中开发VOIP应用程序,在这里我想要静音
我正在阅读与PJSUA相关的文档,我发现用于此目的的方法但无法在Android APP中实现,请任何可以帮助我在静音模式下设置呼叫的人
在这里,我提供了PJSUA文档的详细信息,
pj_status_t pjsua_conf_adjust_rx_level (pjsua_conf_port_id slot,
float level )
调整从指定端口(到桥接器)接收的信号电平,使其更响亮或更安静.
Parameters
- slot: The conference bridge slot number.
- level: Signal level adjustment. Value 1.0 means no level adjustment, while value 0 means to mute the port.
Returns
- PJ_SUCCESS on success, or the appropriate error code.
我希望像这样的解决方案使用PJSUA在android中保持调用
public void holdCall() {
CallOpParam prm = new CallOpParam(true);
try {
currentCall.setHold(prm);
} catch (Exception e) {
e.printStackTrace();
}
}
谢谢
解决方法:
希望你做得很好.因为我在Android中也是PJSUA的新手.我阅读了更多关于打电话静音的文档.但我找到了一个可能的,最好的解决方案,它在我的环境中完美运行,这些在下面给出
public void setMute(boolean mute) {
// return immediately if we are not changing the current state
CallInfo info;
try {
info = getCurrentCall().getInfo();
} catch (Exception exc) {
return;
}
for (int i = 0; i < info.getMedia().size(); i++) {
Media media = getCurrentCall().getMedia(i);
CallMediaInfo mediaInfo = info.getMedia().get(i);
if (mediaInfo.getType() == pjmedia_type.PJMEDIA_TYPE_AUDIO
&& media != null
&& mediaInfo.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_ACTIVE) {
AudioMedia audioMedia = AudioMedia.typecastFromMedia(media);
// connect or disconnect the captured audio
try {
AudDevManager mgr = MyApp.ep.audDevManager();
if (mute) {
mgr.getCaptureDevMedia().stopTransmit(audioMedia);
} else {
mgr.getCaptureDevMedia().startTransmit(audioMedia);
}
} catch (Exception exc) {
}
}
}
}
并且对于pjsip支持我们中的一个好人做了杰出的工作here.所以你可以看到代码.
享受你的代码时间:)