我刚学习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;
}
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;
}