2013-11-22 3 views
1
안드로이드

에 CSipSimple의 G729을 사용하는 방법은 지금은 G729 오디오 코덱에 대한 지원을 추가하기 위해 내 안드로이드 응용 프로그램에서 추가 할 here

에서 CSipSimpleG729의 일부 소스를 가지고있다.

어떻게하면됩니까?

+0

'pjsip '을 사용하고 계십니까? – jcm

답변

2

pjsip을 사용할 계획이 아니라면 자신의 프로젝트에서 사용할 수있는 공유 라이브러리를 생성해야합니다.

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에서 불과 수정입니다 이렇게하려면, 난 당신이 jni 폴더를 만들고 유사한 Android.mk 파일을 추가하는 것이 좋습니다. 당신은 단지 일을 제대로 파일 sources/include/g729a.h이 G729 구현하고 pjsip를 사용하는 기획하는 경우, 다른 한편으로 파일 pj_sources/pj_g729.c

에서 사용하는 방법에 대한 좋은 예를 관리하는 데 필요한 모든 기능을 발견 할 것이다 당신을

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를 사용해야하는 프로젝트에 다음 행을 추가, 이것이 (레지스 거의 모든 일을하고있다) 외부 코덱으로 CSipSimple의 구현을 등록하는 것입니다 귀하의 솔루션. SVN 체크 아웃에서

+0

그런 좋은 답변 주셔서 감사합니다, 유일한 문제는 내 프로젝트가 이미 jni 폴더에 Android.mk 있습니다. 그래서 새로운 onr 추가 또는 기존 편집 현재 기능을 중지 할 수 있습니다. 그리고 나는이 모든 것에 대해 새로운 것이므로 내가해야 할 일을 알아낼 수 없다. "pjsip을 사용하려고한다면 CSipSimple의 구현을 외부 코덱으로 등록하는 것입니다." 나는 그 코드 라인을 사용하고 싶습니다. 그렇다면 어디에 있습니까? 내 폴더에 포함 할 파일은 무엇입니까? 너무 많은 질문에 대해 미안하지만, 정말로 나는 이것에 대해 전혀 모른다. – astuter

+0

나는 csipsimple에 대한 당신의 대답을 시도했지만, 그것은 효과가 없었습니다. – astuter

+0

@ I-droid 당신의 이전 코멘트 당신이 현재 프로젝트에서'pjsip '을 전혀 사용하지 않고 내 제안이 이미 설정되고 실행중인'pjsip' UA (이것은 새로운 전체 섹션/요청, 또는 더 많은 것을 필요로하는 주제). 그렇다면 다른 SIP 스택을 사용하면서 G729 만 통합하려고한다는 것을 이해합니다. 잘못된 것입니까? – jcm

0

다운로드 CSipSimpleCodecG729 http://csipsimple.googlecode.com/svn/trunk/ CSipSimple 트렁크 라이브러리는 다음 sipHome 프로젝트에서이 라이브러리를 연결로 구축 당신은 또한 매니페스트 파일에이 코드를 작성해야

<!--G729 codec --> 
 
\t \t <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>

+0

'.jar' 파일을 라이브러리로 만들었습니까? – redL1ne

+0

링크에서 코덱을 다운로드하고'.jar' 파일을 만든 다음 라이브러리로 추가하고 Manifest 파일을 업데이트했지만 아무 것도 변경되지 않았습니다. 응용 프로그램에 코덱을 추가/사용하는 방법은 무엇입니까? – redL1ne

+0

G729 코덱을 찾을 수있는 미디어 설정 및 코덱 목록으로 이동하십시오. 코덱을 확인하고 우선 순위를 설정 ..... 희망 그것이 작동합니다 –