ndroid可以播放手机内存中的音乐和存储卡上的音乐,播放声音主要是利用android.media.MediaPlayer类播放各种声音。下面是利用这个类完成的一个简陋的播放器:
点击开始能够播放声音,停止可以停止播放音乐,暂停可以停止播放声音。其实现代码如下:
主要是播放代码:
package com.easymorse;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class myplayer extends Activity {
private ImageButton mButton01, mButton02, mButton03;
private TextView textView;
private MediaPlayer mediaPlayer;
// 判断是否为暂停状态
private boolean bIsPaused = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton01 = (ImageButton) findViewById(R.id.myButton1);
mButton02 = (ImageButton) findViewById(R.id.myButton2);
mButton03 = (ImageButton) findViewById(R.id.myButton3);
textView = (TextView) findViewById(R.id.myTextView1);
mediaPlayer = new MediaPlayer();
mediaPlayer = MediaPlayer.create(myplayer.this, R.raw.big);
mButton01.setOnClickListener(new ImageButton.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (mediaPlayer != null) {
mediaPlayer.stop();
}
// 开始播放音乐
mediaPlayer.prepare();
mediaPlayer.start();
Toast.makeText(myplayer.this, "正在播放音乐", Toast.LENGTH_SHORT)
.show();
textView.setText(R.string.str_start);
} catch (Exception e) {
textView.setText(e.toString());
e.printStackTrace();
}
}
});
mButton02.setOnClickListener(new ImageButton.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer != null) {
// 停止播放
mediaPlayer.stop();
textView.setText(R.string.str_close);
}
}
});
mButton03.setOnClickListener(new ImageButton.OnClickListener() {
@Override
public void onClick(View v) {
// 暂停状态
if (mediaPlayer != null) {
if (!bIsPaused) {
/* 暂停播放 */
mediaPlayer.pause();
bIsPaused = true;
textView.setText(R.string.str_pause);
} else {
/* 回复播出状态 */
mediaPlayer.start();
bIsPaused = false;
textView.setText(R.string.str_start);
}
}
}
});
}
@Override
/* 覆盖主程序暂停状态事件 */
protected void onPause() {
mediaPlayer.release();
super.onPause();
}
}