簡體   English   中英

如何在Android中使用CSipSimple的G729

[英]How to use G729 of CSipSimple in android

我從這里得到了CSipSimpleG729的一些來源

現在,我想將其添加到我的android應用程序中,以添加對G729音頻編解碼器的支持。

我該如何實現?

如果您不打算使用pjsip,則需要生成一個共享庫,您可以在自己的項目中使用它。 為此,建議您創建一個jni文件夾並添加一個類似於以下內容的Android.mk文件:

LOCAL_PATH := $(call my-dir)

### Glue for pjsip codec ###
include $(CLEAR_VARS)
LOCAL_MODULE := g729_codec

G729_PATH := $(LOCAL_PATH)/../sources

# g729
LOCAL_C_INCLUDES += $(G729_PATH)/include
G729_FILES := $(wildcard $(G729_PATH)/src/*.c)
LOCAL_SRC_FILES += $(G729_FILES:$(LOCAL_PATH)/%=%) 

LOCAL_ALLOW_UNDEFIND_SYMBOLS    := false
LOCAL_CFLAGS := -frtti -fexceptions

include $(BUILD_SHARED_LIBRARY)

這只是對android_toolchain/Android.mk的修改。 您將在文件sources/include/g729a.h找到適當管理此g729實現所需的所有功能,並在文件pj_sources/pj_g729.c有關如何使用它們的良好示例。

另一方面,如果您打算使用pjsip,則只需將CSipSimple的實現注冊為外部編解碼器即可(Regis完成了所有工作),這是在項目中添加以下幾行:

status = pjmedia_codec_g729_init(pjsua_var.med_endpt);
if (status != PJ_SUCCESS)
{   
    PJ_LOG(1,(THIS_FILE, "Error: Failed to init G729 codec"));
}

並使用android_toolchain/Android.mk構建可與解決方案鏈接的庫。

從svn結帳處下載CSipSimpleCodecG729 http://csipsimple.googlecode.com/svn/trunk/ CSipSimple-trunk並將其構建為庫,然后將此庫插入sipHome項目

您還必須在清單文件中編寫此代碼

 <!--G729 codec --> <receiver android:name="com.csipsimple.plugins.codecs.ReceiverG729" android:exported="false" > <meta-data android:name="lib_name" android:value="libpj_g729_codec.so" /> <meta-data android:name="init_factory" android:value="pjmedia_codec_g729_init" /> <intent-filter> <action android:name="com.csipsimple.codecs.action.REGISTER_CODEC" /> </intent-filter> </receiver> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM