我在 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;
}
请告诉我如何识别来电是否有视频。?
最佳答案
经过大量研究,我发现 PJSIP 协议(protocol)不提供来电视频计数。 CallSetting 是所有用户自己设置的。 Asterisk 服务器不会将调用设置发送到接收端。但是Asterisk id给出了媒体支持的信息
callInfo.getRemOfferer()
// It returns a boolean value if true then server support video calling.
所以你可以使用这样的逻辑
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,则表示这是视频通话。
有关更多详细信息,请查看此 PJSIP Call Setting
关于android - 如何在android中的PJSIP中知道来电是否有视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535895/