기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요

 

 

Android Audio Framework부분에서

 

MIDI도 역시 PCM데이터로 변환을 해줘야 하는데요.

 

MDI파일은 StageFrightPlayer재생엔진을 거치지 않는데요.

 

이유가 무엇인지 알고 싶습니다.

 

---------------------------------------------------------------------------------

 

또 한가지 질문은 AudioTrack은 최대 32개까지 생성할 수 있는데요.

 

예를들어 어플 한개(음악)이 실행되면 Track이 1개 생성되고,

 

어플한개(게임소리)가 추가되면 Track 1개가 추가되어 총 2개의 트랙만 사용하는 것인가요?

 

공유 메모리 설정할 때, 32Track을 감안해서 1024*2024로 메모리를 할당하는데, 이중 2Track만 사용하게 되는건지

 

여쭙고 싶습니다.

 

감사합니다. 안녕히 계세요.

 

-------------------------------------------------------------------------------------

 

Audio Flinger단에서 downmixing이 이뤄지는 함수가 구체적으로 어디인지 알고 계신분 있으신가요?

 

책을 참고하면, AudioMixing이 이뤄지기 전에 downmixing이 이뤄진다고 나와있는데요.

 

소스코드를 봐도 어느부분에서 downmixing이 이뤄지는지 찾기가 어렵네요.

 

답변 부탁드립니다.


고도리

2012.09.17 22:47:54
*.200.239.210

1. MIDI player가 동작합니다. libmediaplayerservice의 파일을 참고하시기 바랍니다.


2. 소스를 좀 더 봐야하지만(메모리 관련은), 2 track만 사용할겁니다.

아니면 resource 장난 아니게 먹겠죠...


3. AudioMixer와 AudioResampler를 보시면 되는데, 저도 본지가 넘 오래되어서 가물하네요....하지만

AudioResampler에서 처리가 됩니다.


AudioResampler.cpp를 보시면


AudioResampler* AudioResampler::create(int bitDepth, int inChannelCount,

        int32_t sampleRate, int quality) {


...에서 관련 함수의 초기화를 처리합니다.


처리하는 방법이 독특한데, 그다지 성능이 좋지는 않을겁니다....

ljcg

2012.09.17 22:55:55
*.50.20.41

답변 대단히 감사합니다. AudioResampler쪽 부분 확인해 봐야겠네요. ㅎㅎ

WindBoy

2012.10.12 10:36:15
*.50.21.22

음악과 게임음. 두개만 소리나오고 있다면 재생중인 트랙은 2개가 맞습니다.

그리고 메모리 1MB는 어플마다 1MB입니다.

즉 음악어플 1MB, 게임 1MB... 즉, 프로세스 마다 1MB 입니다.

 

그리고 참고하실것은 지금 음악만 나온다고 트랙 32개까지 저장가능한 트랙 벡터에 트랙 한개만 들어가 있을까요?

아닙니다. 트랙벡터에는 playing상태인 트랙뿐만 아니라 pause된 트랙 stop된 트랙 idle상태인 트랙 등등등..

모두다 트랙 벡터의 공간을 차지할 수 있습니다.

어떤 포켓볼게임의 경우 게임중 홈키눌러서 빠져나왔을때, 더이상 소리는 나지 않지만

트랙 10개가 트랙벡터안에 고스란히 있더군요. 즉 32개에서 10개빼면 22개의 여유분만 있는것이지요.

그상태에서 게임 여러개를 실행시켜보세요. 나중에는 트랙여유가 없어서 소리가 나지않는 증상이 나타납니다.

 

대부분의 게임의 경우 트랙 1~4개정도만 차지합니다.

그 stop된 트랙들은 대부분 SoundPool에서 생성된 트랙들입니다. 참고하세요.

 

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6368 Apple TV 온보드 메모리 변경 가능할까요? [1] 당그니 2011-01-20 94749
6367 android pwm backlight 밝기 제어 [4] 김태영 2011-07-28 55233
6366 com.google.android.maps.jar는 어디서 얻는 것인가요??? [2] 천동이 2014-09-02 52343
6365 USB bluetooth dongle on jellybean [4] 신현호 2014-02-21 50337
6364 우분투 리눅스 ip 변경 도중에 "No such process" [5] 이세종 2009-04-01 46262
6363 OpenOCD 0.2.0 [1] 김광준 2009-10-24 45016
6362 [질문]memset, mmap, memcpy에 대해서 질문 있습니다. [5] 이태간 2007-05-22 44977
6361 libpcap 설치 [1] Apostasy 2011-04-12 44155
6360 램디스크 파일 시스템 만들기 [4] sinwho 2015-08-19 43764
6359 USB 포팅관련 질문드립니다. [1] 김승한 2010-01-07 33328
6358 android에 libusb porting 해보신 분?? [2] 꿈의사람 2014-02-13 29617
6357 오드로이드 배터리 패치 문의 [1] 이종문 2010-07-01 29077
6356 ODROID-T 2.2 셧다운 후 부팅이 안됩니다. [2] shkim 2010-10-02 26899
6355 오드로이드 디버깅이 안되네요... [2] 현쓰 2010-02-01 26615
6354 [질문]wince 이미지 다운로드시 에러 [3] 이태간 2008-04-06 26266
6353 slide event에 따른 landscape & portrait mode 전환 [1] 나영찬 2010-03-25 24678
6352 Andorid ALSA에 관해서...2 [1] 꺼북이 2011-05-18 24525
6351 wm1811 드라이버를 찾아요 [9] 김민욱 2016-11-01 18789
6350 이더넷 핀에서 값을 읽어 오고 싶은데요... [2] rubio 2013-07-09 13050
6349 usb host api 가 리눅스단에서도 사용가능한가요? [1] biokk 2014-02-07 11392

사용자 로그인