2013-12-09 1 views
0

여기 내 맞춤 미디어 컨트롤러가 있습니다. 빨리 감기와 되감기 버튼에 리스너를 추가하고 싶습니다. 이전/다음 동영상의 청취자를 추가 할 수 있습니다. 그러나이 버튼들에는 있지 않습니다. 어느 누구도 참조를 지적하거나 그것을 구현하는 방법에 대한 아이디어를 줄 수 있습니까? 이전/다음 버튼Android MediaController에서 빨리 감기/되감기 버튼에 이벤트 리스너를 구현하는 방법

// Media control event listener 
    MediaController.setPrevNextListeners(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      System.out.println("forward button pressed"); 


     } 
    }, new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      System.out.println("backward button pressed"); 


     } 
    }); 

답변

1

사용자 정의 VideoView을 추가하여 길을 찾았습니다. seekTo() 메서드를 재정 의하여 조건을 추가했습니다.

public interface SeekListener { 
    void onSeekTo(boolean ffwdrwd); 
} 

@Override 
public void seekTo(int pos) { 
    boolean ffwdrwd = false; 
    if (super.getCurrentPosition() <= pos) 
     ffwdrwd = false; 
    else 
     ffwdrwd = true; 
    if (mListener != null) { 
     mListener.onSeekTo(ffwdrwd); 
    } 
    super.seekTo(pos); 
} 

그리고 내 활동

,

videoView.setSeekListener(new SeekListener() { 

     @Override 
     public void onSeekTo(boolean ffwdrwd) { 
      if(ffwdrwd) 
       //Movie Player - Seeking backward 
      else 
       //Movie Player - Seeking forward     
     } 

    }); 
0

에 대한

public class MediaController extends MediaController { 

MyListener mListener; 

public MediaController(Context context) { 
    super(context); 
} 

public MediaController(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public MediaController(Context context, boolean useFastForward) { 
    super(context, useFastForward); 
} 

@Override 
public void show(int timeout) { 
    super.show(3000); 
} 

@Override 
public void hide() { 
    super.hide(); 
} 

public interface MyListener { 
    public void onSetVisibilityCalled(); 
} 

public void registerListener(MyListener myListener) { 
    this.mListener = myListener; 
} 

public void setVisibility(int visibility) { 
    super.setVisibility(visibility); 
    if (mListener != null) 
     mListener.onSetVisibilityCalled(); 
} 

} 

청취자 당신은 기본 MediaController의 빨리 감기 또는 버튼을 되감기를 클릭 리스너에 설정할 수 없습니다. 트릭 재생 기능은 순식간에 seekTo을 사용하여 구현됩니다. 코드 here을 찾을 수 있습니다. mFfwdListener을 검색하십시오.

생각해 보면 사용자가 다음/이전 구현을 제공하도록해야합니다 (전체 재생 목록도 구현하지 않은 경우). 나는 그들이 당신이 순진한 구현보다 더 나은 것을 원한다면 그것을 추측한다. 단순한 UI를 설정하는 것에 신경 쓰지 않을 것이다.

+0

나는 방법을 발견했다. 내 대답을 확인해. – intrepidkarthi

+0

당신은 당신의 필요에 맞는 것을 알아 냈을지도 모르지만 당신이 요구 한 것을 할 수있는 방법을 찾지 못했습니다. – Dave