안드로이드 TV 컨트롤 커스터마이징

이 항목에서는 Android TV용 되감기 및 빨리감기 버튼을 사용자 정의하는 방법을 배웁니다.

서문

TV 용 Brightcove 미디어 컨트롤러에는 되감기 단추와 빨리 감기 단추가 있습니다. 이 버튼 중 하나를 클릭하면 기본값은 3 초 앞뒤로 검색하는 것입니다.

두 버튼 중 하나를 길게 누르면 검색 위치가 40 밀리 초마다 3 초의 콘텐츠 속도로 업데이트됩니다. 즉, 되감기 또는 빨리 감기 버튼을 1 초마다 누르고 있으면 75 초가 빨라집니다.

탐색 버튼 구성

되감기 및 빨리 감기 버튼은 다음을 통해 구성 할 수 있습니다. EventType.SEEK_CONTROLLER_CONFIGURATION행사.

간단하게하기 위해 다음 속성이 둘 다에 적용되므로 이러한 단추 중 하나를 검색 단추라고합니다.

이벤트 속성 기본값 설명
Event.SEEK_DEFAULT 3000ms 탐색 버튼이 탐색 할 기본 탐색 값 (밀리 초)입니다.
Event.SEEK_RELATIVE_ENABLED 거짓 활성화 된 경우 탐색 값이에서 설정 한 비디오 지속 시간을 기준으로 할 수 있습니다. EventType.VIDEO_DURATION_CHANGED행사. 백분율은 다음과 같이 설정됩니다. Event.SEEK_PERCENTAGE .
Event.SEEK_PERCENTAGE 1% 기본 탐색 값을 계산하는 데 사용되는 비디오 지속 시간에 대한 백분율입니다.
Event.SEEK_ON_HOLD_WAIT_TIME 500ms 키 이벤트가 일반 누르기 대신 길게 누르기로 간주 될 때까지 대기하는 시간 (밀리 초)입니다.
Event.SEEK_ON_HOLD_UPDATE_FREQ 40ms 전송에 사용 된 시간 (밀리 초) EventType.SEEKBAR_DRAGGING_PROGRESS미디어 컨트롤러 탐색 막대를 업데이트하는 이벤트입니다.

이벤트 속성 사용자 지정

위의 표에 나열된 속성에서 추가 이벤트 속성을 원할 수 있습니다. 예상 값을 정의하고EventType.SEEK_CONTROLLER_CONFIGURATION행사.

이벤트에 사용자 지정 속성을 추가하려면 다음 단계를 수행하십시오.

  1. 사용자 정의 값을 정의하십시오.

    private static final int DEFAULT_TV_SEEK_TIME = (int) TimeUnit.SECONDS.toMillis(3);
    private static final int DEFAULT_TV_ON_HOLD_WAIT_TIME = (int) TimeUnit.SECONDS.toMillis(1);
    private static final int DEFAULT_TV_SEEK_PERCENTAGE = 1;
    private static final int DEFAULT_TV_ON_HOLD_UPDATE_FREQUENCY_TIME = 500;
    
  2. 속성 맵을 생성하고 원하는 값을 추가하고EventType.SEEK_CONTROLLER_CONFIGURATION행사.

    private void setupTelevisionMode() {
       Map<String, Object> properties = new HashMap<>();
       properties.put(Event.SEEK_DEFAULT, DEFAULT_TV_SEEK_TIME);
       properties.put(Event.SEEK_RELATIVE_ENABLED, true);
       properties.put(Event.SEEK_PERCENTAGE, DEFAULT_TV_SEEK_PERCENTAGE);
       properties.put(Event.SEEK_ON_HOLD_WAIT_TIME, DEFAULT_TV_ON_HOLD_WAIT_TIME);
       properties.put(Event.SEEK_ON_HOLD_UPDATE_FREQ, DEFAULT_TV_ON_HOLD_UPDATE_FREQUENCY_TIME);
    
       eventEmitter.emit(EventType.SEEK_CONTROLLER_CONFIGURATION, properties);
    }
  3. 탐색 컨트롤러 구성을 설정하려면 앱이 TV 모드인지 확인하세요.

    if (BrightcoveMediaController.checkTvMode(mBaseVideoView.getContext())) {
       setupTelevisionMode();
    }