2014-02-20 2 views
2

나는 다운로드하지 않고 URL에서 음악을 재생하려고했지만 모든 문제는 다음 코드를 사용하여 음악을 재생하고 일시 정지하는 것입니다. 처음에는 음악이 시작되는 버튼을 누르기 만하면됩니다. 재생하고 다시 누르면 음악이 일시 중지되었지만 다시 버튼을 누르면 아무 것도 일어나지 않고 일시 중지 된 부분의 음악을 재생해야하지만 문제는 무엇입니까? 두 버튼, 일시 1 및 재생을하여 여기에서 IMAndroid - 음악 재생 url

buttonPlayPause = (ImageView) findViewById(R.id.play); 
    buttonPlayPause.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      if (isPlaying) { 
       buttonPlayPause.setImageResource(R.drawable.play); 
       mediaPlayer.pause(); 
       isPlaying = false; 
      } else { 
       buttonPlayPause.setImageResource(R.drawable.pause); 
       new Stream().execute(); 
      } 
     } 
    }); 

private class Stream extends AsyncTask<String, String, String> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      mediaPlayer.setDataSource(url); 
      mediaPlayer.prepare(); 
      mediaFileLengthInMilliseconds = mediaPlayer.getDuration(); 
      mediaPlayer.start(); 
      animation.cancel(); 
      isPlaying = true; 
      primarySeekBarProgressUpdater(); 
     } catch (Exception e) { 
      return "Exception Caught"; 
     } 
     return url; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
    } 
} 
+0

그냥 당신의 onClick (View v) 메소드에서'v.getId() == R.id.play'를 체크하고있는 이유는 무엇입니까? 다른 버튼이이 메서드를 호출합니까? – donfuxx

+0

당신이 옳다는 것을 고쳤습니다 – user3326853

+0

prepareAsync()를 사용하지 않아도 prepare()를 사용할 수 있습니다. –

답변

0

. stop.ok 또 다른 하나 개의 버튼이

스위치 케이스가 코딩 다음을 추가하여 버튼의 코드, 을 할 수 있습니다, btnPlayBack 내가 MediaPlayer를라는 이름의 글로벌 MediaPlayer를 인스턴스를 생성 music.in 여기에 재생 정지에 대한 일시 정지 및 play.btnStop입니다,

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.button_stop_play: 
      if (mediaPlayer != null && buttonAction == 0) { 
       mediaPlayer.pause(); 
       buttonAction = 1; 
       btnPlayback.setText("Play"); 
      } 
      else { 
       try { 
        mediaPlayer.start(); 
        buttonAction = 0; 
        btnPlayback.setText("Pause"); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
      break; 
     case R.id.button_stop: 
      mediaPlayer.stop(); 
      mediaPlayer = null; 
      break; 
    } 
} 
안드로이드 다시 키 누름

, 당신은 또한 여기

,536을이 줄을 추가하여 음악 재생을 중지 할 수 있습니다
@Override 
public void onBackPressed() { 
    mediaPlayer.stop(); 
}