2016-07-15 5 views
0

우선 Java에 익숙하지 않습니다. 둘째, 다음과 같이 여기 내 의도는 다음과 같습니다onClick 내에서 onClick 메서드 추가

사용자가 버튼을 클릭 (playPause은) - play1 (> 스트림 일시 정지 버튼을 당김 재생 전환 -> 버튼을 당김 일시 정지 (pause1를) 전환 및 스트림 시작 사용자가 버튼을 클릭).

이제 내 문제는 비동기 적으로 MediaPlayer를 준비하는 데 사용되는 onPrepared 방법을 포함하는 현재의 방법 playPauseMusic의 안쪽이 동작 onClick 방법을 구현하는 방법이다.

내 직감은 isPlaying을 확인하고 거기에서 토글을 시도하지만 지금까지의 시도는 실패로 끝났습니다.

다음은 관련 코드이며, 시간 내 주셔서 감사합니다 :

radio.java

package com.example.jacob.wutk; 

import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 

import java.io.IOException; 

public class radio extends AppCompatActivity { 

    /** Called when the user touches the button */ 

    public void playMusic(View view) throws IOException { 
     String url = "http://streamer.cci.utk.edu:8000/wutk-vorbis"; // your URL here 
     MediaPlayer mediaPlayer = new MediaPlayer(); 

     mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

      public void onPrepared(MediaPlayer mediaPlayer){ 
       mediaPlayer.start(); 
      } 
     }); 
     mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     mediaPlayer.setDataSource(url); 
     mediaPlayer.prepareAsync(); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_radio); 
    } 
} 
+1

이 토론을 읽었나요? http://stackoverflow.com/questions/18120174/how-to-play-and-pause-in-only-one-button-android – jakubbialkowski

+0

@jakubbialkowski 예. 다시 말하지만, 나는이 언어에 대해 매우 익숙하며 거기에서 성공적으로 발견 된 아이디어를 성공적으로 구현하지 못했습니다. – McLemore

+0

나는이 튜토리얼이 당신에게 좋은 출발이 될 것이라고 생각한다 : http://www.tutorialspot.com/android/android_mediaplayer.htm 그것은 완전하게 특색이있다. 그래서 나의 제안은 기본적으로 튜토리얼의 붙여 넣기 컨텐트를 복사해서 그걸 가지고 놀기위한 것이다. 그런 다음 특정 요소에 관한 특정 질문이 있으면 요청하십시오. 현재의 질문은 한 가지 대답으로 다루기에 넓습니다. – jakubbialkowski

답변

0

도움이 되었기를 바랍니다.

public class radio extends AppCompatActivity { 
MediaPlayer mediaPlayer; 
boolean prepared=false; 

public void playMusic(View view) throws IOException { 

    playpause(); 

} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_radio); 
    mediaPlayer = new MediaPlayer(); 
    String url = "http://streamer.cci.utk.edu:8000/wutk-vorbis"; 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mediaPlayer.setDataSource(url); 
    mediaPlayer.prepareAsync(); 
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

     public void onPrepared(MediaPlayer mediaPlayer){ 
      prepared=ture; 
     } 
    }); 
} 
} 

public void playPause() { 
if (!mediaplayer.isPlaying()&&prepared) { 
    mediaplayer.start(); 
    mediaplayer.setImageResource(R.drawable.ic_pause); 
} else if(mediaplayer.isPlaying()) { 

    mediaplayer.pause(); 
    mediaplayer.setImageResource(R.drawable.ic_play); 
} 
}