我找到了一些搜索栏与在线媒体播放器一起工作的代码:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// remove message Handler from updating progress bar
mHandler.removeCallbacks(mUpdateTimeTask);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mUpdateTimeTask);
int totalDuration = mp.getDuration();
int currentPosition = utils.progressToTimer(seekBar.getProgress(), totalDuration);
// forward or backward to certain seconds
mp.seekTo(currentPosition);
// update timer progress again
updateProgressBar();
}由于重写,我得到了一个错误,告诉我它们必须重写或实现超类型方法。当我移除它们时,我的代码会编译并运行,但是搜索栏与音乐播放没有任何关联,就像在我可以移动它但音乐继续播放一样。
谢谢。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekBar.setOnSeekBarChangeListener(this); //this line causes an error
try {
mp.setDataSource(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath() + "/SpaceJam.mp3");
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onStart(){
super.onStart();
btnPlay = (ImageButton) findViewById(R.id.play_pause);
btnStop = (ImageButton) findViewById(R.id.stop);
songTitleLabel = (TextView) findViewById(R.id.songname);
songTitleArtist = (TextView) findViewById(R.id.artist);
songCurrentDurationLabel = (TextView) findViewById(R.id.current);
songTotalDurationLabel = (TextView) findViewById(R.id.total);
albumArt = (ImageView) findViewById(R.id.albumArt);
res = getResources().getDrawable(R.drawable.album_art);
utils = new Utilities();
. . .
}发布于 2013-09-23 14:41:39
正如prijupaul提到的,你必须实现OnSeekBarChangeListener。按如下方式更改您的代码:
public class MainActivity extends Activity implements OnSeekBarChangeListener
{
@Override
protected void onCreate(Bundle savedInstanceState) {
...
seekBar.setOnSeekBarChangeListener(this);
...
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
}https://stackoverflow.com/questions/18951643
复制相似问题