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