2014-01-16 13 views
0

我有一個簡單的播放器。 爲了在SeekBar和MediaPlayer之間創建'連接',我被任何地方的seekbar所觸及,並且與播放器進行同步搜索。在你看來,問題在哪裏? 我能做什麼?
如果您在這方面的份額有一個例子是seekbar和android中的播放器

我的代碼:

public class MediaPlaybackActivity extends Activity implements OnClickListener { 
    SeekBar seek_bar; 
    Button play_button, pause_button; 
    MediaPlayer player; 
    Handler seekHandler = new Handler(); 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     getInit(); 
     seekUpdation(); 
    } 

    public void getInit() { 
     seek_bar = (SeekBar) findViewById(R.id.seek_bar); 
     play_button = (Button) findViewById(R.id.play_button); 
     pause_button = (Button) findViewById(R.id.pause_button); 
     play_button.setOnClickListener(this); 
     pause_button.setOnClickListener(this); 
     player = MediaPlayer.create(this, R.raw.win8); 
     seek_bar.setMax(player.getDuration()); 




     seek_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

      @Override 
      public void onStopTrackingTouch(SeekBar seek_bar) { 

      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seek_bar) { 

      } 

       @Override 
       public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {     
        if(player != null && fromUser){ 
         player.seekTo(progress * 1000); 
        } 
       } 
     }); 



    } 

    Runnable run = new Runnable() { 

     @Override 
     public void run() { 
      seekUpdation(); 
     } 
    }; 

    public void seekUpdation() { 

     seek_bar.setProgress(player.getCurrentPosition()); 
     seekHandler.postDelayed(run, 1000); 
    } 

    @Override 
    public void onClick(View view) { 
     switch (view.getId()) { 
     case R.id.play_button: 
      player.start(); 
      break; 
     case R.id.pause_button: 
      player.pause(); 
     } 

}} 
+0

你的代碼格式是錯誤的,用'只爲單行 – hendrix

回答

-1

使用下面的方法

AudioManager audioManager; 
private int maxVolume; 
private int curVolume;  
    /** 
      * To initialize the seek bar 
      */ 
      private void initialiseSeekBar() { 
       audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
       maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
       curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
       mSeekBarVolume.setMax(maxVolume); 
       mSeekBarVolume.setProgress(curVolume); 
       mSeekBarVolume 
         .setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
          @Override 
          public void onStopTrackingTouch(SeekBar arg0) { 
          } 

          @Override 
          public void onStartTrackingTouch(SeekBar arg0) { 

          } 

          @Override 
          public void onProgressChanged(SeekBar arg0, int arg1, 
            boolean arg2) { 
           audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 
             arg1, 0); 
          } 
         }); 
      } 
+0

什麼是音頻管理器? – user3140662

+0

AudioManager的實例... – jyomin

相關問題