2015-11-13 85 views
1

我想設置編解碼器G729默認啓用。我搜索了StackOverflow並發現了許多棄用的解決方案,但現在它們不再有效。如何更改Linphone中的默認音頻編解碼器列表

我寫了一些臨時(可怕的)代碼,每次啓動應用程序時都會設置一個標誌。但我想要一個正常的解決方案。

回答

1

修改文件:linphonerc

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

刪除您的應用程序在iPhone或模擬器,建立並運行。 你會發現編解碼器G729已啓用。

1

要使用G729編解碼器,你需要:

  1. 編譯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 
//<<<<<<<<<<<<<<< 
    } 
... 
} 
相關問題