如何在不从网址下载的情况下播放mp3?

时间:2011-12-13 08:22:20

标签: android mp3

我想发展如下,但我找不到好的例子:

我想玩而不必在网址中下载mp3编码。 除非用户停止播放,否则mp3应该在后台播放。 我想我做多任务处理。

请提供示例文档或任何建议。 感谢。

6 个答案:

答案 0 :(得分:23)

看看这两个教程,其中.mp3文件是通过网址播放的,

Example of streaming mp3 mediafile from URL with Android MediaPlayer class

Play Mp3 file from a Url

另外如果你想在后台播放.mp3文件,我认为你必须使用Service和AIDL,

查看基本的Android-Music Player演示MusicDroid - Audio Player Part II,它描述了如何为音频播放器使用Service和AIDl。

谢谢..

答案 1 :(得分:12)

执行此操作的简单方法::

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

答案 2 :(得分:4)

你可以使用  MediaPlayer.create(context,uri); 传递上下文(this)和你想播放歌曲的uri

答案 3 :(得分:2)

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

我在我的MediaPlayer中使用它正在工作..没有必要下载..

答案 4 :(得分:1)

编辑:

哦,这是Android特定的,而不是(仅仅)一个网站。我建议你看看这些解决方案,以及其他人提到的MediaPlayer解决方案之一。如果你选择MediaPlayer,我建议你接受他们的回答:)


在w3schools上有很多如何做到这一点的例子:

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

你可以:

  • 嵌入媒体播放器,例如the Yahoo web player
  • 通过<audio>元素
  • 以HTML格式播放音频
  • 使用<embed>元素
  • 使用<object>元素

以下是他们称为“最佳”的解决方案:

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

请注意,这是一个HTML 5元素,因此可能无法在每个浏览器上运行。我认为它可能适用于您应该开发丰富的多媒体体验的任何浏览器。

答案 5 :(得分: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();
        }
    }
}
}

在您的活动中,例如,只需致电 PlayAudioManager.playAudio(context, http://dict.youdao.com/dictvoice?audio=good&type=1)

相关问题