Cualquier forma de acelerar este código. Streaming de audio en Android

Hacer una aplicación y transmitir audio desde el sitio. Tengo un menú y cuando hago clic en el botón para abrir la actividad de radio que puede tomar de 8-20 segundos para cargar y, a veces la fuerza se cierra. Cualquier ayuda sería genial gracias.

Código:

public class Radio extends Activity { private MediaPlayer mp; private ImageButton pauseicon; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player_1); pauseicon = (ImageButton) findViewById(R.id.pauseicon); getActionBar().setDisplayHomeAsUpEnabled(true); /** * Play button click event plays a song and changes button to pause * image pauses a song and changes button to play image * */ String res = "http://216.235.91.36/play?s=magic24point7&d=LIVE365&r=0&membername=&session=magic24point7:0&AuthType=NORMAL&app_id=live365%3ABROWSER&SaneID=24.79.96.172-13316781890137014897763&tag=live365"; mp = new MediaPlayer(); try { mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setDataSource(res); mp.prepare(); mp.start(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { } pauseicon.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub // No need to check if it is pauseicon if (mp.isPlaying()) { mp.pause(); ((ImageButton) v).setImageResource(R.drawable.playicon); } else { mp.start(); ((ImageButton) v).setImageResource(R.drawable.pauseicon); } } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); if (mp != null) if (mp.isPlaying()) mp.stop(); mp.release(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onBackPressed() { if (mp != null) { if (mp.isPlaying()) mp.stop(); mp.release(); } // there is no reason to call super.finish(); here // call super.onBackPressed(); and it will finish that activity for you super.onBackPressed(); } } 

One Solution collect form web for “Cualquier forma de acelerar este código. Streaming de audio en Android”

Utilice prepareAsync() y setOnPreparedListener() lugar de prepare() . prepare() bloquea el subproceso de interfaz de usuario hasta que vuelve y no se recomienda para una secuencia. Esto puede ser la causa de su accidente.

 mp = new MediaPlayer(); try { mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setDataSource(res); mp.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer player) { mp.start(); } }); mp.prepareAsync(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { } 

http://developer.android.com/reference/android/media/MediaPlayer.html#prepare ()

Prepara el reproductor para su reproducción de forma síncrona. Después de configurar el origen de datos y la superficie de visualización, necesita llamar a prepare () o prepareAsync (). Para los archivos, está bien llamar a prepare (), que se bloquea hasta que MediaPlayer esté listo para su reproducción.

De lo contrario creo que la red es su cuello de botella. La forma más rápida de acelerar las cosas es asegurar que la comunicación entre el servidor y el cliente sea rápida. No parece ser algo inherentemente lento sobre su código.

  • Reproducción de FLV / HTTP en la aplicación de Android
  • Problema de transmisión en vivo de Android RTSP
  • Transferir flujo de video en tiempo real al servidor mediante Android
  • Prácticas recomendadas para la transmisión de audio
  • Cómo hacer que una videoview NO se inicie automáticamente después de preparado
  • Android: no se puede reproducir vídeo mp4
  • Reproducción de vídeo desde el directorio caché de la aplicación
  • Android cómo grabar vídeo, subir, transcodificar, descargar, jugar
  • Cómo subir un video desde un teléfono Android (como Android) mientras se está grabando
  • Convertir secuencias de entrada de vídeo a RTMP
  • La transmisión de datos en tiempo real Bluetooth SPP en Android sólo funciona durante 5 segundos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.