
public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); seekbar = (Seekbar) findVIEwByID(R.ID.seekbar1); seekbar.setonSeekbarchangelistener(this);}public voID onClick(VIEw v){ if(v == stopbutton){ mediaPlayer.pause(); }else if(v == startbutton){ mediaPlayer.start(); run(); }else if(v == quitbutton ){ mediaPlayer.stop(); mediaPlayer.release(); }}public voID run() { int currentposition= 0; int total = mediaPlayer.getDuration(); while (mediaPlayer.isPlaying()) { currentposition= mediaPlayer.getCurrentposition(); seekbar.setProgress(currentposition); }}解决方法 在 Android Building Audio Player Tutorial中,请参阅更新Seekbar进度和计时器一节 /** * Update timer on seekbar * */ public voID updateProgressbar() { mHandler.postDelayed(mUpdateTiMetask,100); } /** * Background Runnable thread * */ private Runnable mUpdateTiMetask = new Runnable() { public voID run() { long totalDuration = mp.getDuration(); long currentDuration = mp.getCurrentposition(); // displaying Total Duration time songTotalDurationLabel.setText(""+utils.milliSecondsToTimer(totalDuration)); // displaying time completed playing songCurrentDurationLabel.setText(""+utils.milliSecondsToTimer(currentDuration)); // Updating progress bar int progress = (int)(utils.getProgresspercentage(currentDuration,totalDuration)); //Log.d("Progress",""+progress); songProgressbar.setProgress(progress); // Running this thread after 100 milliseconds mHandler.postDelayed(this,100); } }; /** * * */ @OverrIDe public voID onProgressChanged(Seekbar seekbar,int progress,boolean fromtouch) { } /** * When user starts moving the progress handler * */ @OverrIDe public voID onStartTrackingtouch(Seekbar seekbar) { // remove message Handler from updating progress bar mHandler.removeCallbacks(mUpdateTiMetask); } /** * When user stops moving the progress hanlder * */ @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(); } 总结 以上是内存溢出为你收集整理的android上的Seekbar不会自动移动全部内容,希望文章能够帮你解决android上的Seekbar不会自动移动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)