안드로이드 개발 질문/답변
(글 수 45,052)
갤럭시 S 단말기에서 Sound Source 관련 문의 점이 있어서 해당 사항에 작성합니다. 안드로이드의 경우 효과음 및 음성 데이터를 제어하기위하여 SoundPool 이라는 API 를 사용하도록 되어있습니다. 근데 현재 갤럭시 S에서는 이 SoundPool 이 다른 디바이스와는 다른 현상을 나타내고 있어 혹여 핸드폰의 특성인가 문의 하고 싶습니다. SoundPool 은 어플 내부의 Resource 에도 접근이 가능하지만,
내부 메모리 나 확장 메모리(/sdcard) 에 있는 Resource에 대해서도 접근이 가능한것이 일반적입니다. 허나, 갤럭시 s의 경우 SoundPool을 이용하여, 외부 Resource에 접근하면, 해당 접근이 정상적으로 이루어지지 못하고, 사운드를 정상적으로 재생하지 못하는 현상이 발견됩니다.
ex)SoundPool.load(context,R.raw.사운드 리소스) -> 반환되는 soundId로 soundPool.play 가능
SteamID 값이 정상적으로 반환됨.
SoundPool.load(/sdcard/사운드 리소스) -> 반환되는 soundId 로 soundPool.play 불가능.
SteamID 값이 0 반환됨.
혹여, 현재 갤럭시s의 펌웨어 상태에서 SoundPool에 대한 버그 및 특이 사항 이 존재하는지에 대해서 문의 및 도움 요청 드립니다.
해당 사항에 대한 팁 및 정보가 있으신분들의 적극적인 도움 부탁드립니다.
감사합니다.
2010.08.22 00:07:29
수정 조치해본후 시도해본후에 답글 올려보겠습니다.
근데, SDCARD를 확인한 결과, 분명 해당 파일은 정상적으로 잘 생성이 되어있는 상태였구요.
만약 위의 사항이라면, 파일 접근에 대한 IO에러가 발생되어야 하는데,
SOUNDPOOL.LOAD 는 정상적으로 이루어지는 반면,
LOAD로 얻어진 SoundID 값으로 SoundPool.Play 를 요청하였을대에는,
StreamID 가 0으로 떨어지는 이상한 현상이 있네요...
이거에 대비해서, 지금 AudioTrack을 이용해서 Byte값 수정을 통한 재생을 시도해보고있는데..
이게 쉽지가 않네요;;