我从G729 of CSipSimple得到了这里的一些资料
现在,我想将它添加到我的android应用程序中,以便添加对G729音频编解码器的支持。
我怎样才能做到这一点?
发布于 2013-11-23 21:32:37
如果您没有计划使用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的修改。您将在文件g729中找到正确管理此sources/include/g729a.h实现所需的所有函数,以及如何在文件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构建一个库,您可以将其链接到解决方案。
发布于 2015-06-20 08:40:29
从svn签出CSipSimpleCodecG729 CSipSimple-主干下载http://csipsimple.googlecode.com/svn/trunk/并将其构建为库,然后将该库插入sipHome项目中。
您还必须在Manifest文件中编写此代码
<!--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>
https://stackoverflow.com/questions/20143871
复制相似问题