[英]How to use G729 of CSipSimple in android
如果您不打算使用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.