import java.io.File;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
public class MainActivity extends Activity implements OnClickListener {
private Button play;
private Button pause;
private Button stop;
private MediaPlayer mediaPlayer=new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play=(Button) findViewById(R.id.play);
pause=(Button) findViewById(R.id.pause);
stop=(Button) findViewById(R.id.stop);
initMediaPlayer();//初始化MediaPlayer
play.setOnClickListener(this);
pause.setOnClickListener(this);
stop.setOnClickListener(this);
}
private void initMediaPlayer(){
try{
File file=new File(Environment.getExternalStorageDirectory(),"music.mp3");
mediaPlayer.setDataSource(file.getPath());//指定音頻檔案的路徑
mediaPlayer.prepare();//讓MediaPlayer進入準備狀態
}catch(Exception e){
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.play:
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();//開始播放
}
break;
case R.id.pause:
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();//暫停播放
}
break;
case R.id.stop:
if(mediaPlayer.isPlaying()){
mediaPlayer.reset();//停止播放
initMediaPlayer();
}
break;
default:
break;
}
}
@Override
protected void onDestroy(){
super.onDestroy();
if(mediaPlayer!=null){
mediaPlayer.stop();
mediaPlayer.release();
}
}
}
uj5u.com熱心網友回復:
必須要實作 onPreparedListener 在回呼函式里面 進行 mediaplayer.start() 說明資源已經準備好了,另外要保證 有SDCARD讀寫權限。
uj5u.com熱心網友回復:
發現是SDCARD權限未寫,prepare沒有問題,可以了。。。謝謝大神的回答uj5u.com熱心網友回復:
SDCARD的權限已經寫了,但是還是會出現這個錯誤,是啥原因,跪求大神解答轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/106917.html
標籤:Android
上一篇:高顏值內容豐富的GitHub應用
