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

标签 android codec linphone

如何强制在 linphone 中仅使用 Opus 编解码器? 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);

最佳答案

您可以使用这样的函数:

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

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

关于android - 在 Linphone Android 中强制仅使用 OPUS 编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635522/

相关文章:

android - 底部的粘性 ScrollView 项目 - Android

java - Android:尝试根据所选的另一个微调器项目创建一个微调器

c - Libav(ffmpeg)容器编解码器时基和流时基的目的是什么?

未压缩视频的视频比特率计算

android - 如何保护 Android 应用程序免受盗窃和应用程序本身的修改?

android - 我的 android 应用程序如何以编程方式显示键盘

windows - 调用文件时将声音文件从一种音频编解码器转换为另一种音频编解码器

linphone - 以下二进制文件丢失 : ndk-build. 请安装它们

android - 如何在android studio中运行linphone

ios - 有没有办法拦截应用程序中的音频输出以在 iOS 上显示音频可视化工具?