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.

  • Cómo desarrollar un simple reproductor de audio streaming android?
  • MMS de vídeo de flujo de Android y m3u8
  • Android Streaming Wav Error de audio: Preparación de MediaPlayer: status = 0x1
  • Android gson streaming analizador o android.util.jsonreader?
  • H.264 Streaming en tiempo real, fecha y hora en unidades NAL?
  • Cómo transmitir vídeo desde Internet a través de nanoHTTPd a VideoView
  • Android: MediaRecorder @ Código nativo
  • Transmitir un audio .pls en android
  • Dispositivo Android como receptor para el perfil A2DP
  • Transmisión de audio a teléfonos móviles, ¿qué tecnología utilizar?
  • Android - Transmisión adaptativa de velocidad de bits. (HLS) Calidad del flujo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.