2016-07-15 3 views
0

Zunächst einmal, ich bin neu zu Java. Zweitens meine Absichten hier sind wie folgt:Hinzufügen onClick Methode innerhalb onPrepare

Benutzer klickt Taste (playPause) -> Taste wird ziehbar pausieren (pause1) und Strom beginnt und Benutzer klickt Taste -> Stream Pausen und Taste schaltet ziehbar spielen (play1).

Nun mein Problem ist, wie dieses Verhalten zu implementieren, eine onClick Methode, innerhalb der aktuellen Methode playPauseMusic, die eine onPrepared Methode enthält, die verwendet wird, um den Mediaplayer asynchron vorzubereiten.

Meine Intuition ist es, eine Überprüfung für isPlaying und wechseln von dort aus, aber meine Versuche haben bis zum Scheitern beendet.

Hier ist der relevante Code und vielen Dank für Ihre Zeit:

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

Haben Sie diese Diskussion gelesen? http://stackoverflow.com/questions/18120174/how-to-play-and-pause-in-only-one-button-android – jakubbialkowski

+0

@jakubbialkowski Ja ich habe. Ich bin wieder sehr neu in dieser Sprache und hatte keinen Erfolg bei der Umsetzung der dort gefundenen Ideen. – McLemore

+0

Ich denke, das Tutorial guter Start für Sie sein könnte: http://www.tutorialspoint.com/android/android_mediaplayer.htm Es vollständig vertreten ist, so ist mein Vorschlag grundsätzlich Paste Inhalt von Tutorial zu kopieren und damit zu spielen. Dann, wenn Sie eine bestimmte Frage zu einem bestimmten Element haben, fragen Sie es. Ihre aktuelle Frage ist zu weit gefasst, um sie in einer Antwort zu erfassen. – jakubbialkowski

Antwort

0

Ich hoffe, das hilft.

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); 
} 
}