首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android之音乐播发(二)

2012-06-27 
Android之音乐播放(二)package cn.itcast.audioimport java.io.Fileimport java.io.IOExceptionimport

Android之音乐播放(二)

package cn.itcast.audio;import java.io.File;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;public class PlayActivity extends Activity {private static final String TAG = "PlayActivity";    private EditText filenameText;    private MediaPlayer mediaPlayer;    private String filename;    private int position;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        filenameText = (EditText)this.findViewById(R.id.filename);               mediaPlayer = new MediaPlayer();        ButtonClickListener listener = new ButtonClickListener();        Button playButton = (Button)this.findViewById(R.id.play);        Button pauseButton = (Button)this.findViewById(R.id.pause);        Button resetButton = (Button)this.findViewById(R.id.reset);        Button stopButton = (Button) this.findViewById(R.id.stop);        playButton.setOnClickListener(listener);        pauseButton.setOnClickListener(listener);        resetButton.setOnClickListener(listener);        stopButton.setOnClickListener(listener);        Log.i(TAG, "onCreate()");    }        @Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {this.filename = savedInstanceState.getString("filename");this.position = savedInstanceState.getInt("position");super.onRestoreInstanceState(savedInstanceState);Log.i(TAG, "onRestoreInstanceState()");}@Overrideprotected void onSaveInstanceState(Bundle outState) {outState.putString("filename", filename);outState.putInt("position", position);super.onSaveInstanceState(outState);Log.i(TAG, "onSaveInstanceState()");}@Overrideprotected void onPause() {//如果突然电话到来,停止播放音乐if(mediaPlayer.isPlaying()){position = mediaPlayer.getCurrentPosition();//保存当前播放点mediaPlayer.stop();}super.onPause();}@Overrideprotected void onResume() {if(position>0 && filename!=null){//如果电话结束,继续播放音乐try {play();mediaPlayer.seekTo(position);position = 0;} catch (IOException e) {Log.e(TAG, e.toString());}}super.onResume();}@Overrideprotected void onDestroy() {    mediaPlayer.release();     super.onDestroy();Log.i(TAG, "onDestroy()");}private final class ButtonClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {filename = filenameText.getText().toString();//先得到文本框中的内容Button button = (Button) v;//得到button try {switch (v.getId()) {//通过传过来的Buttonid可以判断Button的类型case R.id.play://播放play();break;case R.id.pause:if(mediaPlayer.isPlaying()){mediaPlayer.pause();button.setText(R.string.continue1);//让这个按钮上的文字显示为继续}else{mediaPlayer.start();//继续播放button.setText(R.string.pause);}break;case R.id.reset:if(mediaPlayer.isPlaying()){mediaPlayer.seekTo(0);//让它从0开始播放}else{play();//如果它没有播放,就让它开始播放}break;case R.id.stop:if(mediaPlayer.isPlaying()) mediaPlayer.stop();//如果它正在播放的话,就让他停止break;}} catch (Exception e) {//抛出异常Log.e(TAG, e.toString());}}    }private void play() throws IOException {File audioFile = new File(Environment.getExternalStorageDirectory(),filename);mediaPlayer.reset();mediaPlayer.setDataSource(audioFile.getAbsolutePath());mediaPlayer.prepare();mediaPlayer.start();//播放}}

?

热点排行