ventanas varias studio reproductor poner para onstop musica mediaplayer hacer fuente como codigo botones android stream radio playback

varias - onstop android



Cómo jugar y pausar en un solo botón-Android (5)

Tengo dos botones en mi reproductor multimedia que transmite una estación de radio, reproduce y pausa. Quiero hacer que sea solo un botón que tenga dos funciones. Primero haga clic en Quiero jugar y luego haga clic en Deseo pausarlo. Y cuando vuelva a hacer clic en él, quiero jugarlo. Necesito ayuda. Aquí está mi código.

play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); play.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { play(); } }); play.performClick(); pause.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { pause(); } }); } private void play() { Uri myUri = Uri.parse("Shoutcast URL"); try { if (mp == null) { this.mp = new MediaPlayer(); } else { mp.stop(); mp.reset(); } mp.setDataSource(this, myUri); // Go to Initialized state mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setOnPreparedListener(this); mp.setOnBufferingUpdateListener(this); mp.setOnErrorListener(this); mp.prepareAsync(); Log.d(TAG, "LoadClip Done"); } catch (Throwable t) { Log.d(TAG, t.toString()); } } @Override public void onPrepared(MediaPlayer mp) { Log.d(TAG, "Stream is prepared"); mp.start(); } private void pause() { mp.pause(); } @Override public void onDestroy() { super.onDestroy(); stop(); } public void onCompletion(MediaPlayer mp) { stop(); }


Cree solo un botón y agregue algo como un estado del botón. Luego puede verificar el estado en su oyente.
Por ejemplo:

boolean isPlaying = false; playPause = (Button) findViewById(R.id.play); playPause.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { if (isPlaying) { pause(); }else{ play(); } isPlaying = !isPlaying; } });


Por ejemplo, aquí hay un ToggleButton con el atributo android: onClick:

<ToggleButton android:id="@+id/togglebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="Vibrate on" android:textOff="Vibrate off" android:onClick="onToggleClicked"/>

Dentro de la actividad que aloja este diseño, el siguiente método maneja el evento click:

public void onToggleClicked(View view) { // Is the toggle on? boolean on = ((ToggleButton) view).isChecked(); if (on) { // Enable vibrate } else { // Disable vibrate } }



Boolean b = false; Button play = (Button) findViewById(R.id.play); play..setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { if(b == false) { //write play code here b= true; } else { // enter pause code here } } }


No necesita declarar ninguna variable booleana para verificar el estado del jugador. Hay un método ya disponible en la clase de reproductor de medios llamado - isPlaying ().

Prueba mi secuencia de códigos para reproducir con un solo botón.

public void playpause(){ if(!mp.isPlaying()){ // here mp is object of MediaPlayer class mp.start(); //showNotification("Player State Plying"); } else if(mp.isPlaying()){ mp.pause(); //showNotification("Player State Pause"); } }