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

안드로이드 MP3 제작 중 튕김현상이 발생하였습니다.

0 추천
private void playAudio(String filePath)
    {
     try
     {
      mp.reset();
      mp.setDataSource(filePath);
      mp.prepare();
      mp.start();   
      btnPlay.setText("중지");
      mp.setOnCompletionListener(new OnCompletionListener(){
       public void onCompletion(MediaPlayer mp1)
       {
        btnPlay.setText("재생");
        playPosition++; //재생 위치를 1 증가 시킨다. 
        nextAudio();
       }
      });
     }
     catch(Exception err)
     {
      ToastMessage(err.getMessage(), Toast.LENGTH_LONG);
     }
    }
    private void nextAudio()
    {     
     if(playPosition<playFileList.size())
     {
      playAudio(playFileList.get(playPosition));
     }
     else
     {
      
      ToastMessage("마지막 곡입니다.", Toast.LENGTH_LONG);
     }
    
    }
    
    private void BeforeAudio()
    {     
     if(playPosition<playFileList.size())
     {
      playAudio(playFileList.get(playPosition));
     }
     else
     {
      
 ToastMessage("첫 곡입니다.", Toast.LENGTH_LONG);
      
     }
    
    }
    
   
    private OnClickListener reButtonClickListener = new OnClickListener(){
     public void onClick(View v)
     {
      switch(v.getId())
      {
      case R.id.btnPlay:
       if(mp.isPlaying())
       {
        mp.stop();//재생 정지 
        btnPlay.setText("재생");
       }
       else
       {
        //searchFileList에서 선택한 곡만을 모아서 playFileList를 만든다. 
           playFileList.clear();//재생목록 초기화 
           SparseBooleanArray sba = lvFileList.getCheckedItemPositions();
           int max = sba.size();
           for(int i=0;i<max;i++)
           {
            if(sba.valueAt(i))
            {
             playFileList.add(searchFileList.get(sba.keyAt(i)));         
            }
           }
           //playFileList의 음악을 하나씩 재생한다. 
           if(playFileList.size()>0)
        {            
            playPosition=0;//처음 시작은 처음 부터 한다. 
            playAudio(playFileList.get(playPosition));
        }
       }       
       break;
       
      case R.id.btnNext:
            playPosition++; //재생 위치를 1 증가 시킨다. 
            nextAudio();
            break;    
            
      case R.id.btnBefore:
       playPosition--;  //재생 위치를 1 감소 시킨다. 
      BeforeAudio();
      break;      
      }      
     }     
    };   
    
}

 

안드로이드 펍 회원님들의 도움을 받아, 이전 곡 재생기능을 추가하였습니다,  그 결과 리스트에서 여러 곡 선택후, 선택한 곡을 다음으로 가고,  뒤로 가는 기능을 추가하게 되었습니다. 그러나 오류가 하나 발생하였습니다.

제일 첫번째 곡입니다, 메시지가 떠야되는 상황이 발생되면 튕김 현상이 일어났습니다.

그래서 텍스트가 문제인줄 알고 maketext 로 변경 과 제거를 하였지만 고쳐지지 않았습니다.. 

그 다음으로는 포지션이 마이너스가 되어서 문제가 생겼는지 해서 포지션을 0으로 설정하는 방법과, ++하는

방법을 써봤지만, 실패하여서 게시물을 올립니다..   해결방법을 알려주세요.. 부탁드립니다...

 

wasingtonz (390 포인트) 님이 2014년 4월 15일 질문
로그캣 로그를 보면 수월할 것 같습니다.

1개의 답변

+1 추천
튕김현상이 발생할때의 로그를 함께 올려주세요
Gradler (109,780 포인트) 님이 2014년 4월 16일 답변
...