Android 如果不从url下载,如何播放mp3?

Android 如果不从url下载,如何播放mp3?,android,mp3,Android,Mp3,我想发展如下,但我没有找到好的例子: 我想玩而不必下载url中的mp3编码。 除非用户停止播放,否则mp3应在后台播放。 我想我会同时处理多项任务 请提供示例文件或任何建议。 谢谢。看看这两个教程,其中.mp3文件通过web url播放 另外,如果你想在后台播放.mp3文件,我认为你必须使用Service和AIDL 看看基本的Android音乐播放器演示,它描述了如何为您的音频播放器使用服务和AIDl 谢谢..您可以使用 创建(上下文,uri); 传递要播放歌曲的上下文(this)和uri,

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

我想玩而不必下载url中的mp3编码。 除非用户停止播放,否则mp3应在后台播放。 我想我会同时处理多项任务

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

看看这两个教程,其中.mp3文件通过web url播放

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

看看基本的Android音乐播放器演示,它描述了如何为您的音频播放器使用服务和AIDl

谢谢..

您可以使用 创建(上下文,uri);
传递要播放歌曲的上下文(this)和uri,方法很简单::

MediaPlayer mp = new MediaPlayer();
 mp.setDataSource(PATH_TO_FILE);
 mp.prepare();
 mp.start();
我已经在我的MediaPlayer中使用了它,它正在工作。。没有必要下载它

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(上下文、,http://dict.youdao.com/dictvoice?audio=good&type=1)

这是一个非常广泛的问题。如果mp3长度为3分钟,但下载时间为4分钟,会发生什么情况?我不想下载mp3,我需要从url播放。请发布一个小故事来解释你在这里做了什么。“仅仅因为问题含糊不清并不意味着你应该太含糊。”我编辑了我的答案,它对我有用。你的代码很好。我的评论是指您没有任何解释。mediaplayer是否缓存使用
setDataSource(上下文,Uri)设置的文件集
?我想确保在初始下载后不会执行新的get请求。在哪里将url转换为myUri?
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();
        }
    }
}
}