Android中用seekbar控制項控制歌曲的進度

來源:互聯網
上載者:User

標籤:android   blog   http   io   ar   os   使用   on   2014   

本人菜鳥一枚,在編寫android中用seekbar控制項控制歌曲的進度和seekbar隨著歌曲的播放自動運動的程式有一些自己的見解,希望各位大牛們多多指點······

廢話先不多說了,先貼一張程式的圖吧:

介面不怎麼好看,沒經過美化,大家將就這看一下吧。

主要思路是運用線程每隔一秒顯示一下seekbar控制項所在的位置,(這個是使進度條隨著歌曲的進度而不斷的變化,如果大家想使進度條增加的更連續,可以改變程式迴圈啟動並執行時間,使其更快)

我只把關於seekbar的程度拿出來了:

private int position=0;//媒體音樂所播放的位置

private SeekBar seekbar;

public Handler seekbarhandler=null;
public SeekbarThread seekbarthread=null;

//首先定義thread方法。

seekbarthread=new SeekbarThread();

public class SeekbarThread extends Thread {
private SeekBar seekbar;
public void run(){
Message message=new Message();
message.what=1;
seekbarhandler.sendMessage(message);
}

}

//定義handler處理事件

seekbarhandler=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
if(msg.what==1){
seekbar.setProgress((int)(((double)mediaplayer.getCurrentPosition()/mediaplayer.getDuration())*100));
seekbarhandler.postDelayed(seekbarthread, 1000);

}
}
};

//對於seekbar事件的定義和監聽事件:

seekbar=(SeekBar)findViewById(R.id.seekbar1);

seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {//數值的改變
position=arg1;
mediaplayer.start();

}

@Override
public void onStartTrackingTouch(SeekBar arg0) {//開始拖動

}

@Override
public void onStopTrackingTouch(SeekBar arg0) {//停止拖動
mediaplayer.seekTo((int)(((double)position/100)*mediaplayer.getDuration()));//seekbar最大值預設為100,所以這裡用100,但是這樣使取值不是特別精確,我沒想出

//其他的什麼辦法解決,使其更精確,所以暫時只能用這樣的方法。
}

});

基本上的使用方法就是這樣,第一次寫部落格,哪裡有不好的地方請大家多提提意見,以後慢慢改正。

Android中用seekbar控制項控制歌曲的進度

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.