포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

AudioSystem과 AudioSystem.java를 이용한 JNI 단에서의 연결

 

김재훈 (이솝 임베디드 포럼)

 

1. AudioSystem과 AudioSystem.java를 연결하는 JNI 단에 대해 기술되어 있는 코드는 다음에 위치해 있다.

   frameworks/base/core/jni/android_media_AudioSystem.cpp // 193라인
  

static JNINativeMethod gMethods[] = {
    {"setParameters",        "(Ljava/lang/String;)I", (void *)android_media_AudioSystem_setParameters},
    {"getParameters",        "(Ljava/lang/String;)Ljava/lang/String;", (void *)android_media_AudioSystem_getParameters},
    {"muteMicrophone",      "(Z)I",     (void *)android_media_AudioSystem_muteMicrophone},
    {"isMicrophoneMuted",   "()Z",      (void *)android_media_AudioSystem_isMicrophoneMuted},
    {"isMusicActive",       "()Z",      (void *)android_media_AudioSystem_isMusicActive},
    {"setDeviceConnectionState", "(IILjava/lang/String;)I", (void *)android_media_AudioSystem_setDeviceConnectionState},
    {"getDeviceConnectionState", "(ILjava/lang/String;)I",  (void *)android_media_AudioSystem_getDeviceConnectionState},
    {"setPhoneState",       "(I)I",     (void *)android_media_AudioSystem_setPhoneState},
    {"setRingerMode",       "(II)I",    (void *)android_media_AudioSystem_setRingerMode},
    {"setForceUse",         "(II)I",    (void *)android_media_AudioSystem_setForceUse},
    {"getForceUse",         "(I)I",     (void *)android_media_AudioSystem_getForceUse},
    {"initStreamVolume",    "(III)I",   (void *)android_media_AudioSystem_initStreamVolume},
    {"setStreamVolumeIndex","(II)I",    (void *)android_media_AudioSystem_setStreamVolumeIndex},
    {"getStreamVolumeIndex","(I)I",     (void *)android_media_AudioSystem_getStreamVolumeIndex}
};

2. 위는 JNINativeMethod gMethods[]의 데이터는 C언어단과 JAVA 단을 매핑 시켜주기 위한 테이블이며,

     다음의 형식을 띄고 있다.

    {"setParameters",        "(Ljava/lang/String;)I", (void *)android_media_AudioSystem_setParameters},
    [ C언어 함수 ]            ([자료형])리턴형        JAVA의 함수, "_"는 JAVA에서 "."으로 변환되어 사용되며,
    android_media_AudioSystem_setParameters는 android.media.AudioSystem.setParameters로 JAVA에서 사용된다.
   
3. 앞의 JNINativeMethod gMethods[] 다음과 같이 registerNativeMethods(); 함수를 통하여, JNI로 등록하게 된다.

 

const char* const kClassPathName = "android/media/AudioSystem";

int register_android_media_AudioSystem(JNIEnv *env)
{
    AudioSystem::setErrorCallback(android_media_AudioSystem_error_callback);
   
    return AndroidRuntime::registerNativeMethods(env,
                "android/media/AudioSystem", gMethods, NELEM(gMethods));

}

profile

인생은 연극이고 세상은 무대이다!

이솝 임베디드 포럼 운영 및 비즈니스와 관련된 것 이외에 E-Mail이나 메신저 및 휴대폰 등을 통한 개인적인 질문 및 답변은 받지 않습니다. 문의 사항은 이솝 임베디드 포럼 게시판을 이용해 주시면 감사하겠습니다.

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Documents_Android_Frameworks&document_srl=34866&act=trackback&key=95c

물고기

2011.06.27 19:59:30
*.50.21.24

좋은 자료 감사합니다^^

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
64 S3C6410 target으로의 Android porting에 대하여(1) [3] 고현철 2009-04-23 20133
63 Android 커널 2.6.27~28버젼에서 CONFIG_SUSPEND옵션시 죽는 문... [3] 2009-05-08 10026
62 Android 동작시 Battery 관련 /sys 파일 에러 & Power off ... [2] 2009-05-09 11010
61 Google Android 커널 버전별 Testing Report [2] 김재훈 2009-05-17 11493
60 cupcake, android 1.0/1.5의 의미 2009-05-20 10710
59 Android Battery 드라이버...ㅎㅎㅎ-.-; [3] 2009-06-02 10769
58 mv6410 보드에 안드로이드 올렸습니다. . 2009-06-11 9549
57 MV6410용 aesop-android-2.6.29 입니다. (CS8900 관련) file [4] 2009-06-17 10621
56 HTC G2 안드로이드폰 밧데리 시간 [3] 2009-06-25 9720
55 android gstreamer 동작화면 file [10] 고현철 2009-07-07 11026
54 S3C6410 Android ADB USB-OTG 동작 화면 file [8] 김재훈 2009-07-09 15621
53 aesop 안드로이드 보드의 3D 성능 측정을 부탁드립니다. file [8] 최영빈 2009-07-09 11041
52 Android 윈도우에서 git로 소스 받기.. [3] 2009-07-14 17021
51 Vmware에서 x86으로 안드로메다 포팅 법 [1] 2009-07-15 11075
50 Android Java쪽에서 시작 하는 main()부분... file [1] 2009-07-16 9977
49 Android make옵션 [3] 2009-07-16 19464
48 [강좌]안드로이드 1.5 compile해서 NFS root filesystem으로 만들... file [1] 고도리 2009-07-18 14140
47 MV6410의 android gps file [4] 주재경 2009-07-29 13108
46 Android audioflinger 분석자료 입니다. file [11] 고현철 2009-07-30 18819
45 [번역] Android OpenCore multimedia framework-part1 file [7] 고현철 2009-08-04 13768

사용자 로그인