2016-06-28 10 views
1

オーディオプレーヤーを作成していて、オーディオ再生中にシークバーを更新したい。私はオンラインで検索し、runOnUiThreadを使って更新する方法を書いたが、シークバーを更新しながら音楽を停止する。サービスを使用することから離れてそれを解決する方法。シークバーを更新すると、オーディオの再生中にオーディオが停止する

getActivity().runOnUiThread(new Runnable() { 
           @Override 
           public void run() { 
           int duration = mp.getCurrentPosition()/1000; 
           seekbar.setProgress(duration); 
            mHandler.postDelayed(this, 1000); 
           } 
          }); 

答えて

1

あなたはタイマーを使用してみてください。この

mHandler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     int duration = mp.getCurrentPosition()/1000; 
     seekbar.setProgress(duration); 
     mHandler.postDelayed(this,1000); 
    } 
},1000); 
+0

これは動作しません。それは一度だけ実行されます。 – mallaudin

+0

はい、1回だけ実行します.1秒ごとに実行しますか? –

+0

はい、1秒ごとです。 – mallaudin

0

のように、例をそれを行う必要があります:あなたがキャンセルしたい

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
    @Override 
    public void run() { 
      int duration = mp.getCurrentPosition()/1000; 
      seekbar.setProgress(duration); 
    } 
}, 1000, 1000); 

timer.cancel(); 
timer = null; 

More info about Timer

0

問題はseekBar.setOnSeekBarChangeListener(this)です。あなたのAudioControl()メソッドに入れて.....あなたのseekbarにoncheckchangedlistnerを設定しないでください....

+0

あなたはどのようにそれを知っていますか?私はすでにリスナーを実装しています。 – mallaudin

関連する問題