2011-08-29 127 views
6

我試圖播放按鈕上的聲音文件,但我的聲音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,無需下載此聲音的方式。

+0

通過不下載你的意思是流媒體嗎?據我所知,Android無法進行真正的流媒體播放。 – mibollma

回答

18

媒體播放器在android.You馬麗娟功能就可以搞定occurred.So這是播放的文件(本地或在線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; 
     } 
    }); 
+2

如果解決了您的問題,請將其接受爲答案。 – Sameer

0

如果你想扮演這個代碼的所有事件本地聲音,你必須先下載它。

你只是不能「從網上玩東西」,因爲播放聲音的機器是你的本地機器。它需要有一個副本那個MP3。

之後,可能會有方法在下載完成之前開始播放,但無論如何都會有下載。

編輯AndroidDeveloper,在該頁面的另一答覆,給你如何做流媒體信息(+1!)。這與我上面提到的內容相對應,所以在下載實際完成之前,似乎有一種方法可以開始播放,即使此下載將在最後發生。

+0

但我看到它從互聯網播放聲音 – boyyes90