[안드로이드 공부]/미디어

[안드로이드] 미디어플레이어 에러 대처하기 (-38, -19)

코코모아 2015. 11. 11. 11:43

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

error (-38, 0)


미디어 플레이어가 준비 되지 않았는데 시작 하게 되면 발생하는 에러다.

즉, 준비 리스너를 달고 난 뒤 준비가 끝났다는 이벤트가 오면 시작 시키도록 하자.


                mPlayer.prepareAsync();

                mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

                    public void onPrepared(MediaPlayer mp) {                        

                        mp.start();

                    }

                });


그러나,

위와 같이 하면 또.. -38이 날 확률이 높다.

                mPlayer.prepareAsync();


아래와 같이 코드를 리스너 밑으로 달자. 그래야 확실하게... 준비 된 사수로 부터 발사를 할 수 있다..... 

                mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

                    public void onPrepared(MediaPlayer mp) {                        

                        mp.start();

                    }

                });

    mPlayer.prepareAsync();



Error (-19,0)

종료 후 릴리즈를 하지 않아서 발생하는 문제다.
즉, 종료 시점을 리스너로 달아서 확실하게 릴리즈 하도록 한다.

                mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                    public void onCompletion(MediaPlayer mp) {

                        try{

                            mp.release();

                        }catch(Exception e){

                            e.printStackTrace();

                        }

                    }

                });



그리고, 항상 에러 리스너를 달아서 에러 나면 아래와 같이 필요한 작업들을 꼭 하도록 해야, 다음 번 작업에 영향을 미치지 않는다.


mPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {

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

                        try {

                            mp.stop();

                            mp.release();

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                        return true;

                    }

                });



아래는 코모스튜디오의 새 앱인 정각알람 만들기 Plus 입니다. 

꼭 한번 구경하고 가세요 ^^

구글플레이에서 무료 다운 받기



모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.