我目前正在开发一个VoIP Android应用程序,对于VoIP支持,我使用的是开源库Linphone。
目前正在进行语音呼叫,但不发生视频呼叫。经过一段时间的分析后,我了解到,默认情况下,在加载应用程序时,LinphoneCore库使用的是H264视频编解码器。
但是,VOIP服务器配置了VP8视频编解码器。我无法更改在服务器中配置的视频编解码器。因此,由于编解码器不匹配,视频数据不进行。
那么,一旦加载了应用程序,如何将视频编解码器手动设置为VP8 (从应用程序到LinphoneCore )?
发布于 2017-02-09 06:59:34
要将videoCodec设置为LinphoneCore
,您可以做的是,一旦LinphoneCore准备就绪,就可以检索它支持的VideoCodec Payload,然后设置特定的有效负载并禁用其他负载,如下代码所示。
private void enableVp8Codec () {
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
if (lc != null) {
PayloadType[] lPayLoadArr = lc.getVideoCodecs();
for (final PayloadType pt : lPayLoadArr) {
try {
if (pt.getMime().equals("VP8")) {
lc.enablePayloadType(pt, true);
} else {
lc.enablePayloadType(pt, false);
}
} catch (LinphoneCoreException e) {
Log.e("tag",e.getMessage());
}
}
}
}
这个方法可以在活动的onResume中调用。
https://stackoverflow.com/questions/42130077
复制相似问题