마스터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();
      case R.id.btnBefore:
       playPosition--;
       BeforeAudio();
       break;      
      }      
     }     
    };   
    
}

안드로이드 이클립스 자바를 배우고 있는 초보 학생입니다, 위의 소스대로 mp3 플레이어를 작성하고 있는데 오류가 발생되어 글을 올립니다, 형식은 리스트 형태로 mp3를 가져오고 나서 선택한 음악을 재생하고 다음곡으로 재생하는 프로그램입니다.

그 프로그램에서 이전 기능을 추가하기위해 다음형태에 있던 소스를 참고하여 이전기능을 위 처럼 만들었는데 그 과정에

서 오류가 발생했는지 기능이 제대로 작동되지 않습니다, 음악을 재생하기 전에는 첫 곡 입니다, 다음곡 입니다 등 메시지

가 제대로 표현됬는데 리스트 목록을 선택하고 음악을 재생하고 있는 상황에서는 마지막 곡 입니다가 떠야 되는 상황에서도 첫 곡 입니다 라고 뜨고, 이전 곡을  눌렀을때도 리스트에서 선택된 이전의 노래가 나오지 않고, 첫곡입니다 라는 메시지만 뜹니다.

wasingtonz (390 포인트) 님이 2014년 4월 12일 질문

1개의 답변

+1 추천
 
채택된 답변
 case R.id.btnNext: 쪽 아래 break 가 빠져  case R.id.btnNext: 수행 후 바로  case R.id.btnBefore: 쪽이 호출 되는 듯 합니다.
 
 
사악미소 (65,330 포인트) 님이 2014년 4월 14일 답변
wasingtonz님이 2014년 4월 15일 채택됨
집에 도착하자마자 바로 코드 수정하도록 하겠습니다.
첫곡입니다, 마지막 곡 입니다. 오류는 고쳐졌는데, 재생위치를 감소 시켰는데도 뒤로 안가지네요... 왜 그럴까요..
...