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

안녕하세요

 

 

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
번호 제목 글쓴이 날짜 조회 수
5528 Linaro에서 제공하는 boot, kernel [3] 박영기 2012-09-24 1463
5527 안드로이드 logcat 시 로그가 케리지리턴없이 나오는 현상은?? file [3] 칼마 2012-09-21 1591
5526 Android audio sampling rate관련 질문 [3] 신현호 2012-09-20 1418
5525 안드로이드 화면 처리 문의드립니다. [1] 안시영 2012-09-20 1337
5524 ORIGEN 4412 보드 부팅 관련 건 file [5] 램퍼 2012-09-20 1610
5523 soundPool사용 이유 [2] ljcg 2012-09-20 1454
5522 2D 가속기를 사용하면 얼마나 효과가 있을까요? [2] 박영기 2012-09-19 1405
5521 안드로이드에 블루투스 동글 사용시 [1] 김민욱 2012-09-19 2012
5520 [해결]플래쉬 파일 시스템 관련 질문입니다 [2] Mango 2012-09-18 1291
5519 ICS에 TSLIB 추가하려면...? [3] 김승한 2012-09-18 1407
5518 OpenSSL을 NDK로 연결해서 사용하려고합니다. [6] 더페이퍼 2012-09-17 1537
» MIDI파일 재생엔진 질문 & AUdio Track관련 질문 & DownMixi... [3] ljcg 2012-09-17 1430
5516 ALSA 를 이용해서 마이크로부터 음성(PCM Data)을 Recoding 하려... [2] 파란새 2012-09-17 1703
5515 UBIFS image를 NAND Flash Programmer 장비에서 Burning하는 방법... [3] 하얀전구 2012-09-15 1689
5514 풀업/풀다운 저항값은 왜 다른가요? [6] 비둘기사냥꾼 2012-09-14 6135
5513 USB Auto mount에 관해 질문 드립니다. bfvconfidenc 2012-09-14 864
5512 간단한 크로스 컴파일 경로 설정문의입니다. [2] 강동하 2012-09-14 1269
5511 임베디드 리눅스 배포판으로 무엇이 좋을까요? [1] LLVM 2012-09-14 1402
5510 이더넷 4개를 붙이려고 합니다... [2] 윤동열 2012-09-14 1130
5509 ORIGEN 4412 질문! [7] 신준희 2012-09-13 1090

사용자 로그인