예전 자유 게시판

안드로이드 프로그래밍 12장 소스 질문

드로이드 2010-06-22 17:06

안드로이드 프로그래밍 12장 Audio.java 소스에서
녹음을 하고 정지 후 재생을 누르면

06-22 17:29:47.443: ERROR/Audio(27338): Playback failed.
06-22 17:29:47.443: ERROR/Audio(27338): java.io.IOException: Prepare failed.: status=0x1
06-22 17:29:47.443: ERROR/Audio(27338):     at android.media.MediaPlayer.prepare(Native Method)
06-22 17:29:47.443: ERROR/Audio(27338):     at
......

라고 나옵니다.

소스 그대로 임포트했습니다. 왜그런걸까요?.


류광 2010-06-23 22:06


그 위에 Command PLAYER_SET_DATA_SOURCE completed with an error or ... 같은 줄이 나오지요? 예외는 prepare()가 던졌지만, 실제로 문제는 setDataSource()에서 발생한 것 같습니다(아마도 audio.mp4 파일의 접근 권한 때문인 듯).

웹에서 한 가지 해결책을 찾았는데요. setDataSource(String path) 대신 setDataSource(FileDescriptor fd)를 사용하면 재생이 잘 됩니다. 이런 식으로요:
...
FileInputStream istr = new FileInputStream(audioFilePath);
player.setDataSource(istr.getFD());
istr.close();
...
조만간 정오표에 등록하겠습니다~