it-swarm.com.de

Wie kann ich eine MP3-Datei ohne Download von der URL abspielen?

Ich möchte mich wie folgt entwickeln, habe aber kein gutes Beispiel gefunden:

Ich möchte spielen, ohne eine MP3-Codierung in der URL herunterladen zu müssen. Sofern der Benutzer es nicht anhält, sollte die MP3-Datei im Hintergrund abgespielt werden. Ich denke, ich mache Multitasking.

Gibt es bitte ein Beispieldokument oder einen Rat. Vielen Dank.

13
realuser

Sehen Sie sich diese beiden Tutorials an. In diesen werden die MP3-Dateien über die Web-URL abgespielt.

Beispiel für das Streaming einer MP3-Mediendatei von einer URL mit der Android MediaPlayer-Klasse

MP3-Datei von einer URL aus abspielen

Auch wenn Sie die .mp3-Datei im Hintergrund abspielen möchten, müssen Sie dafür Service und AIDL verwenden.

Schauen Sie sich die grundlegende Android-Music Player-Demo an MusicDroid - Audio Player Teil II Beschreiben Sie, wie Sie Service und AIDl für Ihren Audio-Player verwenden.

Vielen Dank..

23
user370305

einfache Methode um dies zu tun ::

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

Sie können MediaPlayer.create (context, uri) verwenden. Übergeben Sie den Kontext (this) und den uri, von dem aus Sie den Song spielen möchten

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

Ich habe es in meinem MediaPlayer verwendet, es funktioniert. Es ist nicht erforderlich, es herunterzuladen.

2
Xar E Ahmer

Bearbeiten:

Oh, das ist Android-spezifisch und nicht (nur) eine Website. Ich schlage vor, Sie schauen sich beide Lösungen an und eine der MediaPlayer-Lösungen, die andere Personen angesprochen haben. Wenn Sie mit MediaPlayer gehen, empfehle ich Ihnen, die Antwort zu akzeptieren :)


Es gibt viele Beispiele, wie Sie dies in w3schools tun können:

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

Sie können:

  • Betten Sie einen Mediaplayer wie den Yahoo-Webplayer ein.
  • Abspielen von Audio in HTML über das <audio>-Element
  • Verwenden Sie das <embed>-Element
  • Verwenden Sie das <object>-Element

Hier ist die Lösung, die sie als "am besten" beschreiben:

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

Beachten Sie, dass es sich hierbei um ein HTML 5-Element handelt, das möglicherweise nicht für jeden einzelnen Browser verfügbar ist. Ich denke, es wird wahrscheinlich in jedem Browser funktionieren, in dem Sie reichhaltige Multimedia-Erlebnisse entwickeln sollten.

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

Rufen Sie in Ihrem Activity-Beispiel einfach PlayAudioManager.playAudio(context, http://dict.youdao.com/dictvoice?audio=good&type=1) auf.

1
veeson