如何更改 Linphone 中的默认音频编解码器列表

How to change the list of default audio codecs in Linphone

我想将编解码器 G729 设置为默认启用。我在 Whosebug 上搜索并找到了许多已弃用的解决方案,但现在,它们不再有效。

我写了一些临时的(糟糕的)代码,每次启动应用程序时都会设置一个标志。但我想要一个正常的解决方案。

要使用 G729 编解码器,您需要:

  1. 使用 G729 支持编译 linphone,检查构建文件以获得适当的构建标志
  2. 通过调用 enablePayloadType
  3. 更改编解码器列表
  4. 通过将其设置为第一个来将其设置为首选

解决办法,强制开启:

try {
    PayloadType ptG729 = LinphoneManager.getLc().findPayloadType("G729");
    LinphoneManager.getLc().enablePayloadType(ptG729, true);
} catch (LinphoneCoreException e) {
    Log.e(e,"Unable to modify status for codec " + "G729");
}

此代码可以添加到 LinphoneActivity.java 例如,在第一个应用程序启动时调用

protected void onCreate(Bundle savedInstanceState) {
...
    if (LinphonePreferences.instance().getAccountCount() > 0) {
        LinphonePreferences.instance().firstLaunchSuccessful();
    } else {
        startActivityForResult(new Intent().setClass(this, SetupActivity.class), FIRST_LOGIN_ACTIVITY);
//Forced ON  G729
//<<<<<<<<<<<<<<<
    }
...
}

修改文件:linphonerc

[audio_codec_0]
mime=G729
rate=8000
enabled=1

在iPhone或模拟器上删除您的APP,构建并运行。 您会发现编解码器 G729 已启用。