2011-09-03 52 views
34

我在我的android手機中有一個mp3文件,讓它是我的SD卡中的某個xyz.mp3文件。 我想通過我的應用程序播放它。 請幫我,我不知道它。如何在android中播放音頻文件

+0

你也可以把'xyz.mp3'成'RES /生/'然後通過'R.raw.xyz'引用它。然而,你有兩個選擇:'MediaPlayer'和'SoundPool'。爲了高效的內存管理,你應該使用一個庫來處理這些類:https://github.com/delight-im/Android-Audio – caw

回答

74

只需您使用MediaPlayer即可播放音頻文件。退房this nice example用於播放音頻:

public void audioPlayer(String path, String fileName){ 
    //set up MediaPlayer  
    MediaPlayer mp = new MediaPlayer(); 

    try { 
     mp.setDataSource(path + File.separator + fileName); 
     mp.prepare(); 
     mp.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

thanx ..但它只是一個代碼什麼關於GUI .. ??用於GUI的 –

+7

您必須親自去尋找圖像和全部佈局。 –

+62

「怎麼樣的GUI」大聲笑 – erdomester

6

@Niranjan,如果使用的是從資源/原材料文件夾,即讀取存儲在項目中的文件的原始文件,我們可以使用:

mediaplayer.setDataSource(context, Uri.parse("android.resource://urpackagename/res/raw/urmp3name"); 

如果你不得不從SD卡的使用方法:

MediaPlayer mediaPlayer = new MediaPlayer(); 
File path = android.os.Environment.getExternalStorageDirectory(); 
mediaPlayer.setDataSource(path + "urmp3filename"); 

請參閱此相關的問題:MediaPlayer issue between raw folder and sdcard on android

+0

如果你讓我知道爲什麼-1,我會學習上述答案有什麼問題嗎? – Suv

+1

可能-1是因爲你發佈了對原始問題的答案(即如何播放音頻文件);如果你想回復Niranjan的評論,你應該自己添加評論,在Lalit的回答下 – ocramot

+0

嗯......他們應該告訴我,在評論中,我會改變它......反正, 謝謝你讓我知道........ – Suv

0
enter code herepublic class MainActivity extends Activity implements OnClickListener { 
Button play; 
MediaPlayer mp; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    play=(Button)findViewById(R.id.button1); 
    play.setOnClickListener(this); 

} 
@Override 
public void onClick(View arg0) 
{ 
    mp=MediaPlayer.create(getApplicationContext(),R.raw.song);// the song is a filename which i have pasted inside a folder **raw** created under the **res** folder.// 
    mp.start(); 


} 

@Override 
protected void onDestroy() { 
    mp.release(); 
    super.onDestroy(); 
} 

}