綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] android seekbar功能如何使用在播放器??

[複製連結] 查看: 1566|回覆: 0|好評: 0
跳轉到指定樓層
樓主
coolcoinssix | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-9-8 01:12

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
原本我想把MP3播放修改為按下播放鍵時seekbar會跟著播放一起動作,而當按下暫停時再按一下播放按鈕依然在我按鈕按暫停的時候的點播放,想了很久還是想不出來,看了很多網路例題,它們寫的都怪怪的。
問題提問:
1.我想是不是seekbar要跟撥放的音樂進度同步要使用定時器??
2.那麼按下暫停時再按播放是不是要ButtonPlay按鈕的事件類別從新加上if...else,或在原本有的if後面在加上else..if再定義給它,這點試了很多遍就是沒辦法在按暫停時,再按播放鍵又可以播放,卻是又從頭開始播放,擠破頭嚕!!
程式碼如下:
package btn.trainexample;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;

public class TrainExamplee303Activity extends Activity {
private ImageButton mButtonPlay, mButtonPause, mButtonStop;
private TextView mTextView;
private MediaPlayer mMediaPlayer;
private boolean bIsPaused = false;
private SeekBar mSeekBar;
private TextView mTxtSeekBar;
private int total;
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

findview();
setListener();

mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{

public void onCompletion(MediaPlayer arg0)
{
try
{
mMediaPlayer.release();
mTextView.setText(R.string.str_OnCompletionListener);
}
catch (Exception e)
{
mTextView.setText(e.toString());
e.printStackTrace();
}
}
});
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener()
{
public boolean onError(MediaPlayer arg0, int arg1, int arg2)
{
try
{
mMediaPlayer.release();
mTextView.setText(R.string.str_OnErrorListener);
}
catch (Exception e)
{
mTextView.setText(e.toString());
e.printStackTrace();
}
return false;
}
});
}

@Override
protected void onPause()
{
try
{
mMediaPlayer.release();
}
catch (Exception e)
{
mTextView.setText(e.toString());
e.printStackTrace();
}
super.onPause();
}

private void findview() {

mButtonPlay =(ImageButton) findViewById(R.id.myButtonPlay);
mButtonPause =(ImageButton) findViewById(R.id.myButtonPause);
mButtonStop =(ImageButton) findViewById(R.id.myButtonStop);
mTextView = (TextView) findViewById(R.id.myTextView);
mMediaPlayer = new MediaPlayer();
mMediaPlayer = MediaPlayer.create(TrainExamplee303Activity.this, R.raw.always1);
mSeekBar = (SeekBar)findViewById(R.id.seekBar);
mTxtSeekBar = (TextView)findViewById(R.id.textSeekBar);
mSeekBar.setProgress(0);
setTotal(mMediaPlayer.getDuration());
}


private void setListener() {
mButtonPlay.setOnClickListener(ButtonPlay);
mButtonStop.setOnClickListener(ButtonStop);
mButtonPause.setOnClickListener(ButtonPause);
mSeekBar.setOnSeekBarChangeListener(seekBarOnChangeLis);

}


public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}

SeekBar.OnSeekBarChangeListener seekBarOnChangeLis =new
SeekBar.OnSeekBarChangeListener(){
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
if(fromUser)
{

mMediaPlayer.seekTo(progress);
mSeekBar.setProgress(progress);
}
String s = getString(R.string.resultSeekBar);
mTxtSeekBar.setText(s + Integer.toString(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar)
{
mMediaPlayer.pause();

}
@Override
public void onStopTrackingTouch(SeekBar seekBar)
{
mMediaPlayer.start();

}

};

private Button.OnClickListener ButtonPlay = new Button.OnClickListener(){
public void onClick(View V){
mSeekBar.setMax(total);

try
{
if (mMediaPlayer != null)
{
mMediaPlayer.stop();
}
mMediaPlayer.prepare();
mMediaPlayer.start();

mTextView.setText(R.string.str_start);
}

catch (Exception e)
{
mTextView.setText(e.toString());
e.printStackTrace();
}
}


};

private Button.OnClickListener ButtonPause = new Button.OnClickListener(){
public void onClick(View V){
try
{
if (mMediaPlayer != null)
{
if(bIsPaused==false)
{
mMediaPlayer.pause();
bIsPaused = true;
mTextView.setText(R.string.str_pause);
}
else if(bIsPaused==true)
{
mMediaPlayer.start();
bIsPaused = false;
mTextView.setText(R.string.str_start);
}
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
mTextView.setText(e.toString());
e.printStackTrace();
}

}
};

private Button.OnClickListener ButtonStop = new Button.OnClickListener(){
public void onClick(View V){
try
{
if (mMediaPlayer != null)
{
mMediaPlayer.stop();
mTextView.setText(R.string.str_close);

}

}
catch (Exception e)
{
mTextView.setText(e.toString());
e.printStackTrace();

}
mSeekBar.setProgress(0);
}

};


}

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則