我正在尝试按下按钮播放声音文件,但我的声音网址来自互联网,例如http://www.example.com/sound.mp3。如何使用媒体播放器单击按钮时播放。
示例:这是播放本地文件的方式
b.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.mmmm);
mp.start();
}
});
我希望播放此声音http://www.example.com/sound.mp3代表R.raw.mmmm,而不下载此声音。
答案 0 :(得分:18)
Media Player在android中具有greate功能。您可以处理所有发生的事件。这是播放文件的代码(本地或在线URL)
String url = "http://........"; // your URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
//You can show progress dialog here untill it prepared to play
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
//Now dismis progress dialog, Media palyer will start playing
mp.start();
}
});
mediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// dissmiss progress bar here. It will come here when MediaPlayer
// is not able to play file. You can show error message to user
return false;
}
});
答案 1 :(得分:0)
如果您想在本地播放此声音,则必须先下载。
你不能“从互联网上播放一些东西”,因为正在播放声音的机器是你的本地机器。它需要复制那个MP3。
之后,可能有一些方法可以在下载完成之前开始播放,但无论如何都会有下载。
编辑: AndroidDeveloper ,在该页面的另一个回复中,为您提供了有关如何进行流式传输的信息(+1!)。这与我上面所说的相对应,因此在下载实际完成之前似乎有一种方法可以开始播放,即使这种下载最终会发生。