두 사람이 함께 스트리밍 및 동기화 할 수있는 개인화 된 VideoView가있는 Android 앱이 있습니다. 따라서 각 사람의 일시 중지/재생 동작으로 상대방 플레이어가 일시 중지/재생 2 개가됩니다.액션을 감지하는 방법은 Alndroid에서 MediaController를 클릭 하시겠습니까?
그래서 start()/pause() 함수가 사용자 터치 또는 동기화에서 왔는지 구분해야합니다. 그래서 사용자가 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가 눌려져 있습니까?