如何更改 pjsip 中的编解码器优先级 android
How to change codec priority in pjsip android
我正在尝试更改 pjsip 中使用的编解码器的优先级 android。
我能够获得编解码器优先级,但在更改编解码器优先级后,它没有反映回来。
if( ep != null)
{
try {
CodecInfoVector codecInfoVector = ep.codecEnum();
if(!codecInfoVector.isEmpty()){
System.out.println("Codecs Enabled!!");
System.out.println("Number of codecs enabled now: "+codecInfoVector.size());
for(int i=0;i<codecInfoVector.size();i++)
{
CodecInfo codecInfo = codecInfoVector.get(i);
String codecId = codecInfo.getCodecId();
short codecPriority = 128;//use higher number for making preferred codec first.
short disableCodecPriority = 0;//use 0 to disable codec in sdp
System.out.println("Codec info now is: "+ codecId);
switch(codecId)
{
case "PCMA/8000/1":
if(Dialer_Properties.enablePCMA)
codecInfo.codecSetPriority("PCMA/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMA/8000",disableCodecPriority);
break;
case "PCMU/8000/1":
if(Dialer_Properties.enablePCMU)
codecInfo.codecSetPriority("PCMU/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMU/8000",disableCodecPriority);
break;
case "G729/8000/1":
if(Dialer_Properties.enableG729)
codecInfo.codecSetPriority("G729/8000",codecPriority);
else
codecInfo.codecSetPriority("G729/8000",disableCodecPriority);
break;
}
System.out.println("Codec Priority now is: "+codecInfo.getPriority());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
如何解决这个问题??
更改优先级后,我没有用更新后的值更新 codecInfoVector。
结果,这些值没有反映出来。
PJSIP 在端点 java class.
中提供了一个方法
更新特定代码后,我可以在 SDP 中看到更新的优先级编解码器。
ep.codecSetPriority("PCMA/8000",codecPriority);
其中 ep 是端点实例对象。
我正在尝试更改 pjsip 中使用的编解码器的优先级 android。
我能够获得编解码器优先级,但在更改编解码器优先级后,它没有反映回来。
if( ep != null)
{
try {
CodecInfoVector codecInfoVector = ep.codecEnum();
if(!codecInfoVector.isEmpty()){
System.out.println("Codecs Enabled!!");
System.out.println("Number of codecs enabled now: "+codecInfoVector.size());
for(int i=0;i<codecInfoVector.size();i++)
{
CodecInfo codecInfo = codecInfoVector.get(i);
String codecId = codecInfo.getCodecId();
short codecPriority = 128;//use higher number for making preferred codec first.
short disableCodecPriority = 0;//use 0 to disable codec in sdp
System.out.println("Codec info now is: "+ codecId);
switch(codecId)
{
case "PCMA/8000/1":
if(Dialer_Properties.enablePCMA)
codecInfo.codecSetPriority("PCMA/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMA/8000",disableCodecPriority);
break;
case "PCMU/8000/1":
if(Dialer_Properties.enablePCMU)
codecInfo.codecSetPriority("PCMU/8000",codecPriority);
else
codecInfo.codecSetPriority("PCMU/8000",disableCodecPriority);
break;
case "G729/8000/1":
if(Dialer_Properties.enableG729)
codecInfo.codecSetPriority("G729/8000",codecPriority);
else
codecInfo.codecSetPriority("G729/8000",disableCodecPriority);
break;
}
System.out.println("Codec Priority now is: "+codecInfo.getPriority());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
如何解决这个问题??
更改优先级后,我没有用更新后的值更新 codecInfoVector。
结果,这些值没有反映出来。
PJSIP 在端点 java class.
中提供了一个方法
更新特定代码后,我可以在 SDP 中看到更新的优先级编解码器。
ep.codecSetPriority("PCMA/8000",codecPriority);
其中 ep 是端点实例对象。