web-dev-qa-db-fra.com

Comment puis-je jouer un mp3 sans téléchargement à partir de l'URL?

Je veux développer comme suit mais je n'ai pas trouvé le bon exemple:

Je veux jouer sans avoir à télécharger un encodage mp3 dans l'URL . À moins que l'utilisateur ne l'arrête, le mp3 devrait jouer en arrière-plan. Je suppose que je suis multitâche.

Existe-t-il un exemple de document ou un conseil s'il vous plaît . Merci.

13
realuser

Regardez ces deux tutoriels. Dans ceux-ci, les fichiers .mp3 sont lus via l’URL Web,

Exemple de transfert de fichiers multimédia MP3 à partir d'URL avec la classe Android MediaPlayer

Lire un fichier MP3 à partir d'une URL

Aussi, si vous voulez jouer un fichier .mp3 en arrière-plan, je pense que vous devez utiliser Service et AIDL pour cela,

Regardez la démo de base d'Android-Music Player MusicDroid - Lecteur audio Partie II décrivez comment utiliser Service et AIDl pour votre lecteur audio.

Merci..

23
user370305

méthode simple pour faire cela ::

MediaPlayer mp = new MediaPlayer();
 mp.setDataSource(PATH_TO_FILE);
 mp.prepare();
 mp.start();
12
Nikunj Patel

Vous pouvez utiliser MediaPlayer.create (context, uri); Transmettez le contexte (this) et l'URI à partir duquel vous souhaitez lire la chanson.

4
amandroid
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;
        }

Je l'ai utilisé dans mon MediaPlayer, il fonctionne .. il n'est pas nécessaire de le télécharger ..

2
Xar E Ahmer

Modifier:

Oh, ceci est spécifique à Android, pas (seulement) un site web. Je vous suggérerais d’examiner ces deux solutions et l’une des solutions MediaPlayer mentionnées par d’autres personnes. Si vous y allez avec MediaPlayer, je vous recommande d'accepter leur réponse :)


Il existe de nombreux exemples sur la manière de procéder sur w3schools:

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

Vous pouvez:

  • Intégrez un lecteur multimédia, tel que le lecteur Web Yahoo
  • Lecture audio en HTML via l'élément <audio>
  • Utilisez l'élément <embed>
  • Utilisez l'élément <object>

Voici la solution qu'ils décrivent comme "la meilleure":

<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>

Notez qu'il s'agit d'un élément HTML 5 et qu'il est donc possible que cela ne fonctionne pas sur tous les navigateurs. Je pense cependant que cela fonctionnera dans n’importe quel navigateur dans lequel vous devriez développer de riches expériences multimédias.

1
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();
        }
    }
}
}

Dans votre activité, par exemple, appelez simplement PlayAudioManager.playAudio(context, http://dict.youdao.com/dictvoice?audio=good&type=1)

1
veeson