如何在Android中实用地将videoCodec设置为LinphoneCore?

时间:2017-02-09 06:50:23

标签: android asterisk voip linphone linphone-sdk

我目前正在开发 VoIP Android应用程序,对于VoIP支持,我使用的是开源库 Linphone

目前正在进行语音通话,但视频通话没有发生。经过一段时间的分析,我发现默认情况下,当加载应用程序时,LinphoneCore库正在使用H264视频编解码器。

但VOIP Asterik服务器配置了VP8视频编解码器。我无法更改在服务器中配置的视频编解码器。因此,由于编解码器不匹配,视频数据不会发生。

那么,一旦应用程序加载,如何手动将视频编解码器从我的应用程序设置为VP8到LinphoneCore?

1 个答案:

答案 0 :(得分:1)

要将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

中调用此方法