2010-12-06 93 views
1

我想單擊按鈕的同時用音頻文件更新我的ProgressBar。我也使用了根據音頻文件長度在幾秒鐘內運行的定時器。使進度條與計時器同步

我配置了定時器,它根據音頻文件的長度很好地增加,但是我的ProgressBar不工作。它給了我NumberFormatException。

我的代碼: class MyCount extends CountDownTimer { private int mycount;

 public MyCount(long millisInFuture, long countDownInterval) 
     { 
      super(millisInFuture, countDownInterval); 
     } 

     public void onFinish() 
     { 
      //timeDisplay.setText("done!"); 
     } 
     public void onTick(long millsIncreasing) 
     { 

     mycount++; 
     mystring = formatTime(mycount*1000); 
     myText.setText(mystring); 
     pBar.setProgress(Integer.parseInt(mystring)); (*****) 
     pBar.setProgress(1000 * pBar.getProgress()); 
     /*String myString1 = mystring.substring(0, mystring.lastIndexOf(":")).trim(); 
     String myString2 = mystring.substring(mystring.lastIndexOf(":")+1, mystring.length()).trim();*/ 

我得到了異常,我已經在支架上顯示星星。 任何人可以幫我, 感謝 大衛

+0

請問您可以發佈`formatTime`函數的代碼嗎?它會返回一個合成的Integer嗎? – 2010-12-06 07:22:56

回答

2

由於你的函數返回一個字符串「12:34」(用:在中)是不是Integer.parse可以分析的數字格式。

您應該保留這將持有該文件的時間長度值(單位:秒)可變

int fileLength 

然後在你的函數:

public void onTick(long millsIncreasing) 
{ 
    int progress = (int)Math.round(millsIncreasing/fileLength) * 100; 
    Bar.setProgress(progress); 

這是假設millsIncreasing參數女士。到目前爲止已處理