设为首页 加入收藏

TOP

Android多媒体开发 音乐播放以及使用SoundPool播放音效(一)
2014-11-24 00:08:15 来源: 作者: 【 】 浏览:19
Tags:Android 多媒体 开发 音乐 播放 以及 使用 SoundPool 音效

音乐播放

MediaPlayer mediaPlayer = new MediaPlayer();
if (mediaPlayer.isPlaying()) {
mediaPlayer.reset();//重置为初始状态
}
mediaPlayer.setDataSource("/mnt/sdcard/god.mp3");
mediaPlayer.prepare();
mediaPlayer.start();//开始或恢复播放
mediaPlayer.pause();//暂停播放
mediaPlayer.start();//恢复播放
mediaPlayer.stop();//停止播放
mediaPlayer.release();//释放资源
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//播出完毕事件
@Override public void onCompletion(MediaPlayer arg0) {
mediaPlayer.release();
}
});
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {// 错误处理事件
@Override public boolean onError(MediaPlayer player, int arg1, int arg2) {
mediaPlayer.release();
return false;
}

});

音乐播放代码示例:

DemoActivity.java:


package cn.itcast.mp3;


public class DemoActivity extends Activity implements OnClickListener,
OnChronometerTickListener {
private EditText et_path;
private Chronometer et_time;
private Button bt_play, bt_pause, bt_replay, bt_stop;
private MediaPlayer mediaPlayer;
private TelephonyManager manager;
/**
* subtime:点击“续播”到暂停时的间隔的和 beginTime:重新回到播放时的bash值 falgTime:点击“播放”时的值
* pauseTime:“暂停”时的值
*/
private long subtime = 0, beginTime = 0, falgTime = 0, pauseTime = 0;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
manager.listen(new MyListener(), PhoneStateListener.LISTEN_CALL_STATE);


et_path = (EditText) this.findViewById(R.id.et_path);
et_time = (Chronometer) this.findViewById(R.id.et_time);
bt_play = (Button) this.findViewById(R.id.play);
bt_pause = (Button) this.findViewById(R.id.pause);
bt_replay = (Button) this.findViewById(R.id.replay);
bt_stop = (Button) this.findViewById(R.id.stop);


bt_play.setOnClickListener(this);
bt_pause.setOnClickListener(this);
bt_replay.setOnClickListener(this);
bt_stop.setOnClickListener(this);
et_time.setOnChronometerTickListener(this);


}


public void onClick(View v) {
String path;
try {
switch (v.getId()) {
case R.id.play:
falgTime = SystemClock.elapsedRealtime();
path = et_path.getText().toString().trim();
play(path);
pauseTime = 0;
et_time.setBase(falgTime);
et_time.start();
break;
case R.id.pause:
pause();
break;
case R.id.replay:
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.seekTo(0);
et_time.setBase(SystemClock.elapsedRealtime());
et_time.start();
} else {
path = et_path.getText().toString().trim();
play(path);
et_time.setBase(SystemClock.elapsedRealtime());
et_time.start();


}
if ("续播".equals(bt_pause.getText().toString().trim())) {
bt_pause.setText("暂停");


}
falgTime = SystemClock.elapsedRealtime();
subtime = 0;
break;
case R.id.stop:
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer = null;
et_time.setBase(SystemClock.elapsedRealtime());
et_time.start();
et_time.stop();
bt_play.setEnabled(true);
bt_play.setClickable(true);
}
falgTime = 0;
subtime = 0;
break;


}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "文件播放出现异常", 0).show();
}


}


priva

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ViewPager多页面滑动效果 下一篇Android 音乐播放器实现歌词显示

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: