2011-05-09 94 views
2

我錄製了音頻,並通過mediaplayer播放。錄音,播放工作正常。我在播放錄製的聲音時使用了一個搜索欄。我使用了以下編碼來播放存儲在SD卡中的內容。它工作正常.. mFileName是SD卡中的音頻文件。 搜索欄在播放時不移動。任何建議...Seekbar遊戲時不移動

 private void startPlaying() 
{ 

MediaPlayer mPlayer = new MediaPlayer(); 

    try { 
     mPlayer.setDataSource(mFileName); 
     mPlayer.prepare(); 
     mPlayer.start(); 
     mSeekBar.setMax(mPlayer.getDuration()); 
    } catch (IOException e) { 
     Log.e(LOG_TAG, "prepare() failed"); 
    } 
} 

而且我用

mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      // TODO Auto-generated method stub 
      if(fromUser){ 
       mPlayer.seekTo(progress); 
       mSeekBar.setProgress(progress); 
      } 
     } 
    }); 
    Thread currentThread = new Thread((Runnable) this); 
    currentThread.start(); 

public void run() { 
    // TODO Auto-generated method stub 
    try { 
     while(mPlayer != null){ 
      int currentPosition = mPlayer.getCurrentPosition(); 
      Message msg = new Message(); 
      msg.what = currentPosition; 
      threadHandler.sendMessage(msg); 
     } 
     Thread.sleep(100); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
private Handler threadHandler = new Handler(){ 
    public void handleMessage(Message msg){ 

     mSeekBar.setProgress(msg.what); 
    } 
}; 

進度條只移動在用戶移動。它不會自動移動。

回答

3

seekbar不會奇蹟般地自我更新以顯示MediaPlayer的當前位置。下面是顯示瞭如何輪詢線程相應檢查MediaPlayer的位置每一秒鐘左右,更新搜索條做一個鏈接:我實現了太

http://united-coders.com/nico-heid/an-android-seekbar-for-your-mediaplayer

+0

。但它不起作用。查看獲取編輯的代碼。 – Manikandan 2011-05-09 14:12:51

+0

你的'run()'方法沒有像樣本那樣實現。 'Thread.sleep'應該在while循環中,而不是在它之後。嘗試讓鏈接的示例先正確工作,然後開始按照您想要的方向修改示例代碼。 – MusiGenesis 2011-05-09 14:21:42