마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaPlayer setDataSource(Context,URI) 에러 질문드립니다.

0 추천

안녕하세요.

 

미디어 플레이어로 기존 폰에서 가지고 있는 mp3 재생 샘플을 만들고 있는데 setDataSource()에서 IOException이 떨어져서 문의 드립니다.

 

http://developer.android.com/guide/topics/media/mediaplayer.html 를 참고해서 작성중입니다.

미디어 목록은 아래와 같은 형태로 불러오구요. 

ContentResolver contentResolver = getContentResolver();
Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if (cursor == null){// 
    query failed, handle error.} 
else if (!cursor.moveToFirst()) { // no media on the device} 
lse { 
    int titleColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.TITLE);
    int idColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media._ID);
    do {
        long thisId = cursor.getLong(idColumn); 
        String thisTitle = cursor.getString(titleColumn);// ...process entry...
    } while (cursor.moveToNext());
}
Uri contentUri = ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.reset();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(getApplicationContext(), contentUri);

그런데 setDataSource()에서 자꾸 IOException이 떨어집니다.

uri.toString()을 해보면 아래와 같이

content://media/external/audio/media/숫자 형태로 나오는걸로 보면 URI는 정상적으로 되어 있는것 같은데 말이죠..

도움좀 부탁 드려요 ㅠㅠ

 

05-20 18:58:01.597: I/MusicInfo(27900): content://media/external/audio/media/3
05-20 18:58:01.607: D/MediaPlayer(27900): Couldn't open file on client side, trying server side
05-20 18:58:01.617: E/MediaPlayer(27900): Unable to to create media player
05-20 18:58:01.627: W/System.err(27900): java.io.IOException: setDataSource failed.: status=0x80000000
05-20 18:58:01.627: W/System.err(27900):  at android.media.MediaPlayer.setDataSource(Native Method)
05-20 18:58:01.627: W/System.err(27900):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:758)
05-20 18:58:01.627: W/System.err(27900):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:713)
05-20 18:58:01.627: W/System.err(27900):  at ctestPlayerService.initMediaPlayer(PlayerService.java:49)
05-20 18:58:01.627: W/System.err(27900):  at test.PlayerService.selectItem(PlayerService.java:127)
05-20 18:58:01.627: W/System.err(27900):  at test.test.TestActivity$3.onItemClick(TestActivity.java:79)
05-20 18:58:01.627: W/System.err(27900):  at android.widget.AdapterView.performItemClick(AdapterView.java:290)
05-20 18:58:01.627: W/System.err(27900):  at android.widget.ListView.performItemClick(ListView.java:3599)
05-20 18:58:01.627: W/System.err(27900):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1849)
05-20 18:58:01.627: W/System.err(27900):  at android.os.Handler.handleCallback(Handler.java:587)
05-20 18:58:01.627: W/System.err(27900):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 18:58:01.637: W/System.err(27900):  at android.os.Looper.loop(Looper.java:130)
05-20 18:58:01.637: W/System.err(27900):  at android.app.ActivityThread.main(ActivityThread.java:3806)
05-20 18:58:01.637: W/System.err(27900):  at java.lang.reflect.Method.invokeNative(Native Method)
05-20 18:58:01.637: W/System.err(27900):  at java.lang.reflect.Method.invoke(Method.java:507)
05-20 18:58:01.637: W/System.err(27900):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-20 18:58:01.637: W/System.err(27900):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-20 18:58:01.637: W/System.err(27900):  at dalvik.system.NativeStart.main(Native Method)
 

androidStart (180 포인트) 님이 2013년 5월 20일 질문
androidStart님이 2013년 5월 20일 수정

1개의 답변

0 추천
폰을 usb로 연결한 상태에서 했더니 그렇네요 ;;;; 이것 때문에 3시간 정도를 날렸습니다. ㅠㅠ
androidStart (180 포인트) 님이 2013년 5월 20일 답변
...