2012-07-19 57 views
0

我有播放視頻一個VideoView和我打電話添加額外的方法的MediaController按鈕

videoPlayer.setMediaController(new MediaController(this));

顯示媒體控制器按鈕(播放,暫停,前進,後退)。 問題是我如何在點擊MediaController的播放或暫停按鈕時添加其他方法?

這裏是我的類:

public class VideoPlayer extends Activity implements OnCompletionListener { 
    private String filename; 

    private VideoView videoPlayer; 
    private MediaPlayer mediaplayer; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.video_player); 

     System.gc(); 
     Intent i = getIntent(); 
     Bundle extras = i.getExtras(); 
     filename = extras.getString("video_url"); 

     System.out.println(filename); 

     videoPlayer = (VideoView) findViewById(R.id.videoPlayer); 
     videoPlayer.setOnCompletionListener(this); 
     videoPlayer.setKeepScreenOn(true); 
     videoPlayer.setVideoPath(filename); 
     videoPlayer.setMediaController(new MediaController(this)); 
     videoPlayer.requestFocus(); 
     videoPlayer.start(); 

     mediaplayer = new MediaPlayer(); 
     mediaplayer = MediaPlayer.create(
       this, 
       Uri.parse("android.resource://" + getPackageName() + "/" 
         + R.raw.alo)); 
     mediaplayer.start(); 

    } 

    /** This callback will be invoked when the file is finished playing */ 
    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // Statements to be executed when the video finishes. 
     this.finish(); 
    } 

    /** Use screen touches to toggle the video between playing and paused. */ 
    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 
     if (ev.getAction() == MotionEvent.ACTION_DOWN) { 
      if (videoPlayer.isPlaying()) { 
       videoPlayer.pause(); 
       mediaplayer.pause(); 
      } else { 
       videoPlayer.start(); 
       mediaplayer.start(); 
      } 
      return true; 
     } else { 
      return false; 
     } 
    } 


    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      finish(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

回答

0

我不知道你想達到的目標。 您可以使用MediaController擴展一個類並實現您自己的一些方法。基本的OO原則。

private class MyMediaController extends MediaController { 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // Your logic here 
     return super.onTouchEvent(event); 
    } 
} 
+0

如何調用播放/暫停按鈕而不是隻播放或暫停視頻? – hectichavana 2012-07-19 10:00:34

+0

您重寫實現其他操作的方法。 – 2012-07-19 10:52:13

+0

是啊,怎麼做?任何想法? – hectichavana 2012-07-19 12:11:46

相關問題