2

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

目前正在进行语音通话,但没有进行视频通话。分析了一会才知道,默认情况下,应用程序加载时,LinphoneCore 库使用的是 H264 视频编解码器。

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

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

4

1 回答 1

2

要将 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());
            }
        }
    }
}

这个方法你可能可以在你的 Activity的onResume中调用

于 2017-02-09T06:59:34.167 回答