2011-12-13 26 views
9

Quiero desarrollar de la siguiente manera pero no encontré un buen ejemplo:¿Cómo puedo reproducir un mp3 sin descargarlo de la url?

Quiero jugar sin tener que descargar una codificación de mp3 en la url. A menos que el usuario lo detenga, el mp3 debería reproducirse en segundo plano. Creo que hago multitareas.

¿Hay algún documento de ejemplo o algún consejo por favor? Gracias.

+2

pregunta muy amplia. ¿Qué debería pasar si el mp3 dura 3 minutos pero tarda 4 minutos en descargarse? – vidstige

+0

No quiero descargar el mp3, necesito jugar desde una url. – realuser

Respuesta

18

mirada a estos dos tutoriales, En estos los archivos .mp3 están jugando a través de URL de la tela,

Example of streaming mp3 mediafile from URL with Android MediaPlayer class

Play Mp3 file from a Url

Además, si desea reproducir archivos .mp3 en el fondo creo que se tiene que usar Service y AIDL para ello,

Mire la demostración básica del reproductor de música Android MusicDroid - Audio Player Part II que describe cómo usar Service y AIDl para su reproductor de audio.

Gracias ..

+1

Gracias, usuario, son buenos ejemplos. – realuser

+0

Bienvenido amigo .. :-) – user370305

+1

gracias por la demostración! – Robert

1

Editar:

Oh, esto es Android, no (solo) un sitio web específico. Sugiero que analice ambas soluciones y una de las soluciones MediaPlayer que otras personas mencionaron. Si vas con MediaPlayer, le recomiendo que acepta su respuesta :)


Hay muchos ejemplos de cómo hacer esto en w3schools:

http://www.w3schools.com/html/html_sounds.asp

Puede:

  • Incrustar un reproductor multimedia, como the Yahoo web player
  • Reproducir audio en HTML a través del <audio> elemento
  • utilizar el elemento <embed>
  • utilizar el elemento <object>

Aquí está la solución que ellos describen como "mejor":

<audio controls="controls" height="50px" width="100px"> 
    <source src="song.mp3" type="audio/mpeg" /> 
    <source src="song.ogg" type="audio/ogg" /> 
    <embed height="50px" width="100px" src="song.mp3" /> 
</audio> 

cuenta que este es un elemento HTML 5, por lo que podría no funciona en todos los navegadores que hay. Sin embargo, creo que probablemente funcione en cualquier navegador en el que se desarrollen experiencias multimedia ricas.

4

Puede utilizar MediaPlayer.crear (contexto, uri); pasar el contexto (este) y el URI desde donde se desea reproducir la canción

7

método simple de hacer esto ::

MediaPlayer mp = new MediaPlayer(); 
mp.setDataSource(PATH_TO_FILE); 
mp.prepare(); 
mp.start(); 
1
if (!isPlaying) 
     { 
      isPlaying = true; 

      mp = new MediaPlayer(); 

      try { 

       mp.reset(); // new one 

       mp.setDataSource(AudioPlayer.this, myUri); 

       //mp.prepareAsync(); 

       mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 

       mp.prepare(); // don't use prepareAsync for mp3 playback 

       mp.start(); 

       // String songTitle = songsList.get(songIndex).get("songTitle"); 
        // songTitleLabel.setText(songTitle); 

       songProgressBar.setProgress(0); 
       songProgressBar.setMax(100); 

       // Updating progress bar 
       updateProgressBar(); 

      } catch (IllegalArgumentException e) { 
       e.printStackTrace(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
     else 
     { 
      isPlaying = false; 

      mp.release();// stop Playing 

      //mp = null; 
     } 

tengo usarlo en mi MediaPlayer es trabajo .. no hay necesidad de descargarlo ..

0
public class PlayAudioManager { 
    private static MediaPlayer mediaPlayer; 

public static void playAudio(final Context context, final String url) throws Exception { 
    if (mediaPlayer == null) { 
     mediaPlayer = MediaPlayer.create(context, Uri.parse(url)); 
    } 
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      killMediaPlayer(); 
     } 
    }); 
    mediaPlayer.start(); 
} 

private static void killMediaPlayer() { 
    if (mediaPlayer != null) { 
     try { 
      mediaPlayer.reset(); 
      mediaPlayer.release(); 
      mediaPlayer = null; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
} 

En su actividad, ejemplo, simplemente llame PlayAudioManager.playAudio(context, http://dict.youdao.com/dictvoice?audio=good&type=1)

+0

. Publique una pequeña narrativa explicando lo que hizo aquí. El hecho de que la pregunta sea vaga no significa que usted también deba hacerlo. –

+0

@MadPhysicist He editado mi respuesta, funciona para mí. – veeson

+0

Tu código está bien. Mi comentario se refiere al hecho de que no tienes explicación alguna. –

Cuestiones relacionadas