프로그래밍/안드로이드

모토로라 아트릭스를 사용하는 안드로이드 프로그래머만 아는 아트릭스의 비밀!

panpro 2012. 8. 22. 01:06

artrix

<자료출처 : 모토로라 공식 홈페이지>

 

아.. 이거때매 3일 헤맸네요.

 

모토로라 아트릭스를 이용해 안드로이드 프로그램 개발하는 개발자만 아는 아트릭스의 비밀!

그건 바로 약 0.3초 미만의 미디어 파일은 재생하지 못한다는 겁니다.

제가 테스트해 본 몇몇 다른 기기들은 다 되는데(갤럭시 S2, 갤럭시탭, 모토로이) 이 녀석은 안되네요.

더 예전 버전이고 사양도 한참 떨어지는 모토로이도 되는데 아트릭스(atrix)는 안됩니다.

 

0.3초 이하의 미디어 파일이 있을까 싶겠지만, 있습니다. 많습니다.

게임이나 일반 앱에도 효과음줄 때 많은데,

 

삑, 뾱, 쿵, 찍

 

이런 소리들 대부분 0.1~0.2초 사이입니다.

그런데 아트릭스는 이렇게 0.3초 미만의 파일들을 재생하지 못해 프로그램이 죽기도 합니다.

그러니 안드로이드 개발자 여러분들, 아트릭스를 위해서라도 0.3초 이상의 미디어 파일만 사용해 주세요!

이제보니 가끔 아트릭스에서 돌아가지 않고 죽는 앱들이 있었는데, 이런 문제 때문이 아닌가 싶어요.

 

 

 

개발자들을 위해

 

보통 리소스의 raw에 있는 mp3 파일 재생할 때,

MediaPlayer.Create(리소스 이름) 하죠.

 

다들 아시는 것처럼  MediaPlayer::Create() 메소드는 내부에서 prepare() 함수를 호출합니다.

그런데 에뮬에서는 괜찮은데 아트릭스에 넣고 돌리기만 하면 저 prepare()에서 exception이 발생했습니다 .

prepare failed.. 0x01. 뭐 이런 에러인데, 처음엔 권한문제인가 싶어서

FileDescriptor에 넣어 돌려보기도 하고 3일동안 별짓을 다 해봤는데, 결국 안되고 말았습니다.

무조건 MediaPlayer::prepare()만 실행하면 exception 발생입니다.

 

0.3초 이상의 파일을 재생하면 아무 문제 없습니다 .

정확한 시간을 재볼까 하다가.. 것도 일이라 그냥 0.3초로 정했습니다.

0.3초에서는 잘 재생되고, 0.16초 파일을 넣어주고 prepare()하면 반드시 Exception 발생, 핸들링 안해주면 죽습니다. ㅋ.

 

그러니 안드로이드 개발자 여러분들, 아트릭스를 위해서라도 0.3초 이상의 미디어 파일만 사용해 주세요!



이 글이 도움이 되셨다면 아래 손꼬락을 꼬옥 눌러주세요. 큰 힘이 됩니다. 그리고 댓글도 남겨주시면 더더욱 크~ㄴ 힘이 됩니다. ^^;
정기구독은 여기를 눌러주세요.