view sourceprint?01 /*变量声明*/
02 private ImageButton playBtn = null;//播放、暂停
03 private ImageButton latestBtn = null;//上一首
04 private ImageButton nextButton = null;//下一首
05 private ImageButton forwardBtn = null;//快进
06 private ImageButton rewindBtn = null;//快退
07 private TextView playtime = null;//已播放时间
08 private TextView durationTime = null;//歌曲时间
09 private SeekBar seekbar = null;//歌曲进度
10 private Handler handler = null;//用于进度条
11 private Handler fHandler = null;//用于快进
12 private int currentPosition;//当前播放位置
[代码] 获得上一个activity传来的数据
view sourceprint?01 @Override
02 protected void onCreate(Bundle savedInstanceState) {
03 super.onCreate(savedInstanceState);
04 setContentView(R.layout.play);
05 Intent intent = this.getIntent();
06 Bundle bundle = intent.getExtras();
07 _ids = bundle.getIntArray("_ids"); //获得保存音乐文件_ID的数组
08 position = bundle.getInt("position"); //获得应该播放的音乐的号数,既播放第几首
09 //代码未完,见下面的代码
10 }
[代码] 初始化控件
view sourceprint?1 playtime = (TextView)findViewById(R.id.playtime); //显示已经播放的时间
2 durationTime = (TextView)findViewById(R.id.duration); //显示歌曲总时间
3 playBtn = (ImageButton)findViewById(R.id.playBtn); //开始播放、暂停播放按钮
4 latestBtn = (ImageButton)findViewById(R.id.latestBtn); //播放上一首按钮
5 nextButton = (ImageButton)findViewById(R.id.nextBtn); //播放下一首按钮
6 forwardBtn = (ImageButton)findViewById(R.id.forwardBtn); //快进按钮
7 rewindBtn = (ImageButton)findViewById(R.id.rewindBtn); //快退按钮
8 seekbar = (SeekBar)findViewById(R.id.seekbar); //播放进度条
[代码] 定义各控件的回调函数
view sourceprint?001 playBtn.setOnClickListener(new View.OnClickListener() { //点击“播放、暂停”按钮时回调
002 @Override
003 public void onClick(View v) {
004 if (mp.isPlaying()){ //如果正在播放则暂停
005 pause();
006 playBtn.setBackgroundResource(
007 R.drawable.play_selecor); //更改按键状态图标
008 } else{ //如果没有播放则恢复播放
009 play();
010 playBtn.setBackgroundResource(
011 R.drawable.pause_selecor); //更改按键状态图标
012
013 }
014 }
015 });
016
017 latestBtn.setOnClickListener(new View.OnClickListener() {//点击“播放上一首”按钮时回调
018 @Override
019 public void onClick(View v) {
020 int num = _ids.length; //获得音乐的数目
021 if(position==0){ //如果已经时第一首则播放最后一首
022 position=num-1;
023 }else{ //否则播放上一首
024 position-=1;
025 }
026 int pos = _ids[position]; //得到将要播放的音乐的_ID
027 setup(); //做播放前的准备工作
028 play(); //开始播放
029 }
030 });
031
032 nextButton.setOnClickListener(new View.OnClickListener(){//点击“播放下一首”按钮时回调
033 @Override
034 public void onClick(View v) {
035 int num = _ids.length; //获得音乐的数目
036 if (position==num-1){ //如果已经是最后一首,则播放第一首
037 position=0;
038 }else{
039 position+=1; //否则播放下一首
040 }
041 int pos = _ids[position]; //得到将要播放的音乐的_ID
042 setup(); //做播放前的准备工作
043 play(); //开始播放
044 }
045 });
046
047 forwardBtn.setOnTouchListener(new OnTouchListener() { //点击“快进”按钮时回调
048 @Override
049 public boolean onTouch(View v, MotionEvent event) {
050 switch (event.getAction()) {
051 case MotionEvent.ACTION_DOWN:
052 fHandler.post(forward); //此处使用handler对象更新进度条
053 mp.pause(); //点击快进按钮时,音乐暂停播放
054 break;
055
056 case MotionEvent.ACTION_UP:
057 fHandler.removeCallbacks(forward);
058 mp.start(); //松开快进按钮时,音乐暂恢复播放
059 playBtn.setBackgroundResource(
060 R.drawable.pause_selecor);
061 break;
062 }
063 return false;
064 }
065 });
066
067 rewindBtn.setOnTouchListener(new OnTouchListener() { //点击“快退”按钮时回调
068 @Override
069 public boolean onTouch(View v, MotionEvent event) {
070 switch (event.getAction()) {
071 case MotionEvent.ACTION_DOWN:
072 fHandler.post(rewind);
073 mp.pause(); //点击快退按钮时,音乐暂暂停播放
074 break;
075
076 case MotionEvent.ACTION_UP:
077 fHandler.removeCallbacks(rewind);
078 mp.start(); //松开快退按钮时,音乐暂恢复播放
079 playBtn.setBackgroundResource(
080 R.drawable.pause_selecor);
081 break;
082 }
083 return false;
084 }
085 });
086
087 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
088 @Override
089 public void onStopTrackingTouch(SeekBar seekBar) {
090 mp.start(); //停止拖动进度条时,音乐开始播放
091 }
092 @Override
093 public void onStartTrackingTouch(SeekBar seekBar) {
094 mp.pause(); //开始拖动进度条时,音乐暂停播放
095 }
096
097 @Override
098 public void onProgressChanged(SeekBar seekBar, int progress,
099 boolean fromUser) {
100 if(fromUser){
101 mp.seekTo(progress); //当进度条的值改变时,音乐播放器从新的位置开始播放
102 }
103 }
104 });
探索者我有我路向
- 粉丝: 334
- 资源: 2100
最新资源
- Matlab_Matlab界面Graphviz图形布局包允许交互式编辑生成的图形.zip
- Matlab_Matlab例程处理空间数据,特别是与MMS和ClusterCAA数据.zip
- Matlab_Matlab粒子滤波和平滑示例代码.zip
- H.265/HEVC解码器优化:针对Intel平台的技术探讨与性能提升
- Matlab_Matlab软件处理动作捕捉文件.zip
- Matlab_Matlab三维数字图像相关工具箱.zip
- Matlab_Matlab实现的Adam随机梯度下降优化算法.zip
- Matlab_Matlab实现siftopensift算法.zip
- Matlab_Matlab实现的非刚性迭代最近点.zip
- Matlab_Matlab散射网络.zip
- Matlab_Matlab实现的多视图低秩稀疏子空间聚类.zip
- Matlab_Matlab实现的高斯过程等机器学习工具.zip
- Matlab_Matlab实现的粒子群优化,有很好的实例说明.zip
- Matlab_Matlab图形用户界面计算和可视化旋转stewart平台的逆运动学.zip
- Matlab_Matlab实现的一种三维重建算法.zip
- Matlab_Matlab小提琴绘图.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页