设为首页 加入收藏

TOP

Android多媒体开发 音乐播放以及使用SoundPool播放音效(二)
2014-11-24 00:08:15 来源: 作者: 【 】 浏览:21
Tags:Android 多媒体 开发 音乐 播放 以及 使用 SoundPool 音效
te void pause() {
// 判断音乐是否在播放


if (mediaPlayer != null && mediaPlayer.isPlaying()) {
// 暂停音乐播放器
mediaPlayer.pause();
bt_pause.setText("续播");
et_time.stop();


pauseTime = SystemClock.elapsedRealtime();
System.out.println("1 pauseTime" + pauseTime);
} else if (mediaPlayer != null
&& "续播".equals(bt_pause.getText().toString())) {
subtime += SystemClock.elapsedRealtime() - pauseTime;
System.out.println("2 subtime:" + subtime);
mediaPlayer.start();
bt_pause.setText("暂停");
beginTime = falgTime + subtime;
System.out.println("3 beginTime" + beginTime);
et_time.setBase(beginTime);
et_time.start();
}
}


/**
* 播放指定地址的音乐文件 .mp3 .wav .amr
*
* @param path
*/
private void play(String path) throws Exception {
if ("".equals(path)) {
Toast.makeText(getApplicationContext(), "路径不能为空", 0).show();
return;
}
File file = new File(path);
if (file.exists()) {
// 如果文件存在 才进行播放操作
// if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(path);
// mediaPlayer.prepare(); // c/c++ 播放器引擎的初始化
// 同步方法
// 采用异步的方式
mediaPlayer.prepareAsync();
// 为播放器注册
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {


public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mediaPlayer.start();
bt_play.setEnabled(false);
bt_play.setClickable(false);
}
});


// 注册播放完毕后的监听事件
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {


public void onCompletion(MediaPlayer mp) {
mediaPlayer.release();
mediaPlayer = null;
bt_play.setEnabled(true);
bt_play.setClickable(true);
et_time.setBase(SystemClock.elapsedRealtime());
et_time.start();
et_time.stop();
}
});


// }else{
// mediaPlayer.reset(); // 重置 播放器的状态
// mediaPlayer.setDataSource(path);
// mediaPlayer.prepare(); // c/c++ 播放器引擎的初始化
// mediaPlayer.start();
// }


} else {
Toast.makeText(getApplicationContext(), "文件不存在", 0).show();
return;
}


}


private class MyListener extends PhoneStateListener {


@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
// 音乐播放器暂停
pause();
break;
case TelephonyManager.CALL_STATE_IDLE:
// 重新播放音乐
pause();
break;
}
}
}


public void onChronometerTick(Chronometer chronometer) {


}
}


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

评论

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