【问题标题】:Play a sound file from internet when a button is clicked [duplicate]单击按钮时从互联网播放声音文件[重复]
【发布时间】:2011-08-29 09:34:31
【问题描述】:

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

【问题讨论】:

  • 不下载是指流式传输吗?据我所知,Android 还不能做真正的流媒体。

标签: android button audio media-player


【解决方案1】:

媒体播放器在android中具有强大的功能。您可以处理发生的所有事件。所以这是播放文件的代码(本地或在线网址)

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

【讨论】:

  • 如果它解决了您的问题,请接受它作为答案。
【解决方案2】:

如果您想在本地播放此声音,您必须先下载它。

您只是不能“从互联网上播放某些东西”,因为播放该声音的机器是您的本地机器。它需要有那个 MP3 的副本。

之后,可能有办法在下载完成之前开始播放,但无论如何都会有下载。

编辑AndroidDeveloper,在该页面的另一个回复中,为您提供了有关如何进行流式传输的信息(+1!)。这对应于我上面所说的,所以似乎有一种方法可以在下载实际完成之前开始播放,即使这个下载会在最后发生。

【讨论】:

  • 但我看到它播放来自互联网的声音
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2012-07-07
相关资源
最近更新 更多