我正在研究Android中的PJSIP,如何检查来电只是音频通话或视频。怎么识别?我使用了以下代码,但它无法正常工作
@Override
public void onIncomingCall(OnIncomingCallParam prm) {
System.out.println("======== Incoming call ======== ");
MyCall call = new MyCall(this, prm.getCallId());
try {
CallSetting setting = call.getInfo().getSetting();
Log.d(" Log APP ", "onIncomingCall: Audio " + setting.getAudioCount() + " Video" + setting.getVideoCount());
} catch (Exception e) {
e.printStackTrace();
}
}
但音频和视频计数总是1,但在拨打电话时,我已经放了视频0
MyCall call = new MyCall(account);
CallOpParam prm = new CallOpParam();
CallSetting setting = new CallSetting();
setting.setAudioCount(1);
setting.setVideoCount(0);
prm.setOpt(setting);
try {
call.makeCall(buddy_uri, prm);
} catch (Exception e) {
call.delete();
e.printStackTrace();
return;
}
请告诉我如何识别来电有没有视频。?
答案 0 :(得分:1)
经过大量研究,我发现PJSIP协议不提供来电视频计数。 CallSetting是所有用户自己设置的。星号服务器不向接收方端发送呼叫设置。但Asterisk id提供有关媒体支持的信息
long videoCount = (callInfo.getRemOfferer()) ? callInfo.getRemVideoCount() : callInfo.getSetting().getVideoCount();
// if server support video call then check remote server video count value its retrun value in 0,1 format if server not support then chek call setting
所以你可以使用像这样的逻辑
{{1}}
视频数量是1意味着这是视频通话。
有关详细信息,请查看此 PJSIP Call Setting
答案 1 :(得分:-2)
您需要检查远程详细信息: sipCall.getInfo()。getRemVideoCount()
其中" sipCall"是你的电话(MyCall)"对象