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

MediaPlayer 동영상 에러

0 추천
안녕하세요.
 
MediaPlayer로 동영상을 실행하는 코드를 짜고 있는데요.
 
알아서 해결해보려 했지만 몇일째 안풀리고 너무 답답해서 올려봅니다...
 
error 1, -1010 에러와 error 1, -1004에러가 나는 이유와 해결책이 무엇인지요?
 
에러리스너에서는 코드가 1로 떨어지는데, UNKNOWN이고... 뭐 어떻게 해야할지 모르겠네요.
 
구조는 setDataSource에 동영상 uri넣고, 리스너 붙이고  prepareAsync 실행했구요.
 
prepareListener의 onPrepare 메소드에 왔을때 start하였습니다.
 
좀 애매한 이유가 잘 될땐 잘 되고 안될때는 3~4번 재생 시도를 해야 실행이 되네요. 
 
네트웍 문제 일거란 생각도 들고...
 
네트웍 체크를 해서  네트웍 연결 안 되어있을땐 토스트 띄우고 stop 시키도록 했는데
 
네트웍 연결 되어있다고 나오고... 
 
혹시 아신다면 답변 부탁드립니다. 감사합니다.
슈퍼꽃붕어 (1,600 포인트) 님이 2015년 8월 12일 질문

1개의 답변

0 추천

MediaErrors.h 파일에 나오듯

-1004는 ERROR_IO 즉 네트워크 등의 이슈로 데이터를 읽지 못했을 때 발생하는 오류입니다.

-1010는 ERROR_UNSUPPORTED 즉 지원하지 않는 형식이라는 의미로 파싱이 실패 할 때나 지원하지 않는 코덱일 경우  주로 나온다고 보시면 됩니다.

 

말씀 해주신대로 네트워크 이슈로 보이며,

연결이 체크가 되어있더라도, 체크 시점 차이로 인해, 

네트워크가 상태가 나빠 연결이 되었다가 끊어졌다가를 반복할 경우에도 발생할 수 있습니다. 

 

그리고  테스트 하신 영상의 스트림 형식이, http라면 연결 이슈지만.

http live라면, 연결이 잘 되어 있는 상태에서도 PMT를 비롯한 코덱 정보를 바로 못 구해서 오류가 날 경우도 있기는 합니다.

익명사용자 님이 2015년 8월 13일 답변
2015년 8월 13일 수정
감사합니다. 에러리스너에서는 1(MEDIA_ERROR_UNKNOWN)으로 떨어지고, 네트워크 체크가 제대로 안되니... 어떻게 처리를 해야할까 생각해봤는데 1004에러면 네트워크 연결 오류라는 메세지를 띄워주고 싶은데요. 혹시 1004인지 1010인지 알수있는 코드 없을까요?
에러 리스너의 what 값이 1(MEDIA_ERROR_UNKNOWN)이고
extra 값이 해당 코드입니다.

구글 API문서에 아래와 같이 되어 있어요...
http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html

public abstract boolean onError (MediaPlayer mp, int what, int extra)

extra    an extra code, specific to the error. Typically implementation dependent.
MEDIA_ERROR_IO
MEDIA_ERROR_MALFORMED
MEDIA_ERROR_UNSUPPORTED
MEDIA_ERROR_TIMED_OUT
아 못봤네요!! 감사합니다!!!!!!
...