Foros del Web » Programando para Internet » Android »

Problemas con el ProgressBar y con el Botón Stop

Estas en el tema de Problemas con el ProgressBar y con el Botón Stop en el foro de Android en Foros del Web. Hola a todos y a todas. Estoy desarrollando una aplicación, para escuchar una radio online. Pero tengo dos problemas que no se cómo solucionar: El ...
  #1 (permalink)  
Antiguo 24/10/2012, 04:43
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Exclamación Problemas con el ProgressBar y con el Botón Stop

Hola a todos y a todas.

Estoy desarrollando una aplicación, para escuchar una radio online.
Pero tengo dos problemas que no se cómo solucionar:

El primero es muy grabe ya que cuando le doy al play "reproducir", se activa el botón stop "parar". Hasta aquí todo bien, pero si pulso el botón Stop antes de que comience a reproducir el audio, se desactiva el stop y se activa el play pero la aplicación sigue reproduciéndose. Esto no tendría que pasar. Yo quiero que el botón se active para ser pulsado cuando se comience a escuchar el audio, no cuando se comience a cargar.

El segundo va relacionado con el ProgressBar. No sé porqué no se carga la barra de progreso. Si se muestra pero no se carga.


Espero haber sido explicito en los problemas que tengo.

Mi Activity tiene este contenido:


import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListene r;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class RadioActivity extends Activity implements OnClickListener {

private final static String RADIO_STATION_URL = "http://xxxxxxxxxxxxxxxxxxxx";

private ProgressBar playSeekBar;

private Button buttonPlay;

private Button buttonStopPlay;

private MediaPlayer player;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.radio);

initializeUIElements();

initializeMediaPlayer();
}

private void initializeUIElements() {

playSeekBar = (ProgressBar) findViewById(R.id.progressBar1);
playSeekBar.setMax(100);
playSeekBar.setVisibility(View.INVISIBLE);


buttonPlay = (Button) findViewById(R.id.buttonPlay);
buttonPlay.setOnClickListener(this);

buttonStopPlay = (Button) findViewById(R.id.buttonStop);
buttonStopPlay.setEnabled(false);
buttonStopPlay.setOnClickListener(this);

}

@Override
public void onClick(View v) {
if (v == buttonPlay) {
startPlaying();
} else if (v == buttonStopPlay) {
stopPlaying();
}
}


private void startPlaying() {
buttonStopPlay.setEnabled(true);
buttonPlay.setEnabled(false);

playSeekBar.setVisibility(View.VISIBLE);

player.prepareAsync();

player.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
player.start();
}
});
}

private void stopPlaying() {
if (player.isPlaying()) {
player.stop();
/**player.release();**/
player.reset();
player.release();
initializeMediaPlayer();
}

buttonPlay.setEnabled(true);
buttonStopPlay.setEnabled(false);
playSeekBar.setVisibility(View.INVISIBLE);
}

private void initializeMediaPlayer() {
player = new MediaPlayer();
try {
player.setDataSource(RADIO_STATION_URL);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {

@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
playSeekBar.setSecondaryProgress(percent);
Log.i("Buffering", "" + percent);
}
});
}


@Override
protected void onPause() {
super.onPause();
if (player.isPlaying()) {
/**player.stop();**/
/**stopPlaying();**/
}

}


@Override
protected void onStop(){
super.onStop();
if (player.isPlaying()){
stopPlaying();
}
}




}



Y mi Layout tiene este otro:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#0069AD" >


<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="320dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:contentDescription="@string/imgreproductor"
android:src="@drawable/reproductor" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="@string/URL" />

<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="@dimen/anchoBarra"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="2dp" />

<Button
android:id="@+id/buttonStop"
android:layout_width="@dimen/anchoPlay"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/progressBar1"
android:layout_below="@+id/progressBar1"
android:layout_marginTop="13dp"
android:text="@string/Stop" />

<Button
android:id="@+id/buttonPlay"
android:layout_width="@dimen/anchoPlay"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/buttonStop"
android:layout_alignBottom="@+id/buttonStop"
android:layout_alignLeft="@+id/progressBar1"
android:text="@string/Play" />

</RelativeLayout>



Espero vuestra ayuda y muchas gracias de ante mano.

Un saludo
  #2 (permalink)  
Antiguo 26/10/2012, 01:24
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problemas con el ProgressBar y con el Botón Stop

Bueno ya he solucionado el problema del botón Stop pero sigo con el problema de la barra de progreso.
  #3 (permalink)  
Antiguo 28/10/2012, 00:08
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: Problemas con el ProgressBar y con el Botón Stop

Estas utilizando mal el progressbar mi amigo, por que de inicio le andas cargando el valor de 100% llenado.... en "playSeekBar.setMax(100);" el chiste es que le vayas llenando dependiendo por donde andes... espero te sirva un poco mi codigo que tengo aqui http://www.forosdelweb.com/f165/jugu...r-yayy-931321/
  #4 (permalink)  
Antiguo 29/10/2012, 16:41
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problemas con el ProgressBar y con el Botón Stop

Bueno ahora he estado pensando en cambiarlo todo porque despues de estar semanas y semanas con esto he visto que se puede abrir el reproductor de android con un archivo en la sdcard.

Mi pregunta es la siguiente:
¿Se puede hacer lo mismo pero en vez de abrir una archivo mp3 de la sdcard, mandarle la url de mi streaming para que lo reproduzca?


Muchas gracisas
  #5 (permalink)  
Antiguo 29/10/2012, 19:01
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: Problemas con el ProgressBar y con el Botón Stop

Yea se puede echate una leida a eventos en intents y creo que hay una opcion para eso.... suerte
  #6 (permalink)  
Antiguo 30/10/2012, 07:11
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problemas con el ProgressBar y con el Botón Stop

Buenas he intentado hacer esto pero no me funciona me da un error: El reproductor no admite este tipo de archivo de audio.

el código empleado es este:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
File audioFile = new File ("http://dirección:8000/archivo");
intent.setDataAndType(Uri.fromFile(audioFile), "audio/mp3");
startActivity(intent);


Puede ser que esté usando mal el intent

Un saludo y muchas gracias

Etiquetas: progressbar, stop, botones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.