单击按钮时从Internet播放声音文件

时间:2011-08-29 09:34:31

标签: android button audio media-player

我正在尝试按下按钮播放声音文件,但我的声音网址来自互联网,例如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,而不下载此声音。

2 个答案:

答案 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!)。这与我上面所说的相对应,因此在下载实际完成之前似乎有一种方法可以开始播放,即使这种下载最终会发生。