2015-11-13 3 views
1

Я хочу установить включенный по умолчанию кодек G729. Я искал в StackOverflow и нашел много устаревших решений, но теперь они больше не работают.Как изменить список аудиокодеков по умолчанию в Linphone

Я написал временный (ужасный) код, который устанавливает флаг каждый раз, когда вы запускаете приложение. Но я хотел бы нормальное решение.

ответ

1

Изменить файл: linphonerc

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

Удалить ваше приложение на iPhone или тренажере , строить и запускать. Вы обнаружите, что кодек G729 включен.

1

Чтобы использовать G729 кодек необходимо:

  1. Compile Linphone с поддержкой G729, контроль создание файлов для соответствующей сборки флага
  2. Измените список кодеков, вызвав enablePayloadType
  3. Установить как предпочитает, установив это как первый один
+0

Спасибо, я использовал что-то подобное. Но я надеялся найти список кодеков по умолчанию и изменить его. Возможно, я добавлю собственное решение. – Severd

+0

Чтобы перечислить кодеки, просто вызовите getPayloadTypes() –

+0

Как я понимаю, эта функция возвращает «динамический» (сменный) список. Но я не понимаю, как этот список создается впервые. Где-то должны быть указаны кодеки по умолчанию в виде некоторых констант или вариантов сборки. – Severd

1

раствора, с помощью принудительного включения:

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 
//<<<<<<<<<<<<<<< 
    } 
... 
}