论坛首页 移动开发技术论坛

android开发音乐播放器之进度条

浏览 28540 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-13  
       我刚学习android没有多长时间,前几天做了一个android版本的音乐播放器,没想到遇到的第一个问题就是播放的进度条,经过查阅文档,找到了解决的方法,我的方法不一定是最好,只是想和大家分享一下,互相学习。

public void onClick(View v) {

ImageButton b=(ImageButton)v; //把View转换成ImageButton

switch(b.getId())     //获得单击按钮的id值
{
    case R.id.starButton:        //单击了star按钮 开始播放
     
    if(musicPlayer.isPlaying())  //如果正在播放,将重置
    {
    musicPlayer.reset();
    }
try {
musicPlayer.setDataSource("sdcard/bb.mp3");
musicPlayer.prepare();
    musicPlayer.start();
   
    musicBar.setMax(musicPlayer.getDuration());
   
    new Thread(new Runnable(){

@Override
public void run() {
while(true){
musicBar.setProgress(musicPlayer.getCurrentPosition()); //获得当前播放的进度值
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

   
}}).start();
    }catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  if(isPause)    //暂停后,播放
  {
  musicPlayer.start();
  isPause=false;
 
  }
   
   发表时间:2010-03-15  
大虾,能把你做的demo分享一下吗,我现在也在做这个,但是好几天了还没有搞定,我播放的也是本地文件,试了一下你的方法,好像不行,“ImageButton b=(ImageButton)v”你这个“V”指的是什么啊?
0 请登录后投票
   发表时间:2010-03-15  
除了进度条之外,还有一个问题也挺麻烦的。
在播放音乐的时候,如果要实现波动图,估计只有自己画出来才可以。
0 请登录后投票
   发表时间:2010-03-15  
BarryWei 写道
除了进度条之外,还有一个问题也挺麻烦的。
在播放音乐的时候,如果要实现波动图,估计只有自己画出来才可以。

BarryWeiw你有没有波动图的代码啊?
0 请登录后投票
   发表时间:2010-03-15  
chenjuncong 写道
BarryWei 写道
除了进度条之外,还有一个问题也挺麻烦的。
在播放音乐的时候,如果要实现波动图,估计只有自己画出来才可以。

BarryWeiw你有没有波动图的代码啊?

没有呢,不久前想做一个player,就想到过这个问题。
我查了api,没有类似的功能。后来别人提示说,paint应该可以,我就晕了……
0 请登录后投票
   发表时间:2010-03-15  
chenjuncong 写道
大虾,能把你做的demo分享一下吗,我现在也在做这个,但是好几天了还没有搞定,我播放的也是本地文件,试了一下你的方法,好像不行,“ImageButton b=(ImageButton)v”你这个“V”指的是什么啊?



这个还在开发中,估计一周后,我会把代码和大家一起交流的。

ImageButton b=(ImageButton)v 这个只是把View  强转为了ImageButton类型。
0 请登录后投票
   发表时间:2010-03-15  
你所说的例子我也看过。。不过我去掉了暂停一秒再显示。
Thread.sleep(1000);
改为直接刷新。还有个问题就是考虑如何把网络的歌曲缓存到SD卡上。
0 请登录后投票
   发表时间:2010-03-15  
bluewing 写道
你所说的例子我也看过。。不过我去掉了暂停一秒再显示。
Thread.sleep(1000);
改为直接刷新。还有个问题就是考虑如何把网络的歌曲缓存到SD卡上。

缓存歌曲到SD上,比较恐怖。要实现网络上的数据读取,可能会比较慢。
今天有点忙,改天放一段代码给你参考。
0 请登录后投票
   发表时间:2010-03-16  
houjunli001 写道
chenjuncong 写道
大虾,能把你做的demo分享一下吗,我现在也在做这个,但是好几天了还没有搞定,我播放的也是本地文件,试了一下你的方法,好像不行,“ImageButton b=(ImageButton)v”你这个“V”指的是什么啊?



这个还在开发中,估计一周后,我会把代码和大家一起交流的。

ImageButton b=(ImageButton)v 这个只是把View  强转为了ImageButton类型。

期待
0 请登录后投票
   发表时间:2010-03-17   最后修改:2010-03-17
进度条这个跟我的想法差不多。我这里有个简单例子。是仿照深入浅出 google android上的例子改的。



本来想加上歌词同步功能的。比较懒,没搞。

但是要绘制波形比较麻烦,麻烦的不是绘制,而是要通过FFP(快速傅里叶算法)算法进行频谱分析。这个我还没搞懂。有知道的童鞋麻烦讲解一下。

MediaPlayer是可以传入url进行网络歌曲播放的吧。但是我怎么一边听,一边把这些流数据保存起来呢?下次我就不用在从网上下载了。貌似MediaPlayer没有这样的接口。

还有一个问题。如果我要把一个mp3音乐中的某一段截取为一个mp3文件,又该怎么搞了。

在论坛里面提问题了。但没人解答。郁闷中。
  • TinyPlayer.rar (1012.3 KB)
  • 描述: 简易播放器
  • 下载次数: 1463
  • 大小: 13.2 KB
1 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics