在Linphone Android中强制使用OPUS编解码器

时间:2015-07-26 09:37:47

标签: android codec linphone

如何强制在linphone中仅使用Opus Codec? LinphoneManager.java或其他地方(比如LinphoneCore)中是否有设置来更改编解码器设置?

我在LinphoneManager.java中找到了这段代码:

enableDisableAudioCodec("speex", 32000, 1, false);
enableDisableAudioCodec("speex", 16000, 1, false);
enableDisableAudioCodec("speex", 8000, 1, true);
enableDisableAudioCodec("iLBC", 8000, 1, false);
enableDisableAudioCodec("G722", 8000, 1, false);
enableDisableAudioCodec("G729", 8000, 1, false);
enableDisableAudioCodec("AMR", 8000, 1, false);
enableDisableAudioCodec("AMR-WB", 16000, 1, false);
enableDisableAudioCodec("SILK", 8000, 1, true);

我可以删除该代码并将其放入:

enableDisableAudioCodec("OPUS", 8000, 1, true);

1 个答案:

答案 0 :(得分:2)

您可以使用以下功能:

private void enableJustOneAudioCodec(String codecName) {
    for (PayloadType pt : LinphoneManager.getLc().getAudioCodecs()) {
        try {
            if (pt.getMime().equals(codecName)) {
                LinphoneManager.getLc().enablePayloadType(pt, true);
            } else {
                LinphoneManager.getLc().enablePayloadType(pt, false);
            }
        } catch (LinphoneCoreException ex) {
            Log.w(ex,"Unable to modify status for codec " + pt.getMime());
        }
    }
}

然后:

enableJustOneAudioCodec("OPUS")

您还可以在linphonerc文件中启用OPUS:

[audio_codec_0]

mime=OPUS
rate=8000
enabled=1

但您必须明确禁用其他编解码器。