0
我有一個個性化的VideoView的Android應用程序,它允許兩個人流和同步在一起。所以每個人的暫停/播放動作都會讓對方的播放器暫停/播放兩個動作。如何檢測操作點擊Alderroid中的MediaController?
所以我需要區分開始()/暫停()函數是從用戶觸摸還是從同步。 所以我想設置一個布爾值,當用戶觸摸MediaController上的播放/暫停按鈕時,布爾值將被設置,但我不知道如何檢測MediaContoller上的播放按鈕是否被觸發。
這裏是我的VideoView類代碼:
public class MyVideoView extends VideoView {
private VideoActionListener listener;
public MyVideoView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyVideoView(Context context, AttributeSet attrs){
super(context, attrs);
}
public MyVideoView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
public void setOnVideoActionListener(VideoActionListener l){
listener = l;
}
@Override
public void start(){
if(listener != null){
listener.onPlay(this.getCurrentPosition());
super.start();
}else{
super.start();
}
}
@Override
public void pause(){
super.pause();
if(listener != null){
listener.onPause(this.getCurrentPosition());
}
}
@Override
public void seekTo(int msec){
if(listener!= null){
listener.onSeek(msec);
super.seekTo(msec);
}else{
super.seekTo(msec);
}
}
interface VideoActionListener{
void onPlay(int msec);
void onPause(int msec);
void onSeek(int msec);
}
}
在這裏,在我的主要活動中,我使用VideoView和MediaController:
MyVideoView video;
MyController controller = new MyController(mContext);
video = (MyVideoView)rootView.findViewById(R.id.video);
video.setBackgroundColor(Color.TRANSPARENT);
video.setMediaController(controller);
private class MyController extends MediaController {
public MyController(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public boolean onTouchEvent(MotionEvent event) {
Toast.makeText(context, "Controller touch event activated",
Toast.LENGTH_SHORT).show();
return true;
// return super.onTouchEvent(event);
}
public boolean onTrackballEvent(MotionEvent event) {
Toast.makeText(context, "Trackball event activated",
Toast.LENGTH_SHORT).show();
return super.onTouchEvent(event);
}
}
所以,我應該如何檢測時,在播放按鈕MediaController被按下?