안드로이드용 네이티브 SDK 용 플러그인 만들기

이 항목에서는 Android용 네이티브 SDK용 플러그인을 만드는 방법을 배우게됩니다.

개요

높은 수준에서 플러그인은 이벤트를 수신하고 생성하여 플레이어와 통합됩니다. 플러그인은 플레이어 및 다른 플러그인의 이벤트를 수신 할 수 있습니다. 플러그인은 플레이어 및 다른 플러그인에 대한 이벤트를 내보낼 수 있습니다.

샘플 코드와 함께이 콘텐츠는 다음 위치에 있습니다. https://github.com/BrightcoveOS/android-plugin-guide

플러그인 아키텍처

플러그인은 인스턴스화 될 때 SDK에 등록해야합니다. 플러그인을 등록하려면REGISTER_PLUGIN이벤트PLUGIN_NAME특성. 예:

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(Event.PLUGIN_NAME, "my custom plugin");
eventEmitter.emit(EventType.REGISTER_PLUGIN, properties);

비디오 재생은 일반적으로 표준 수명주기 이벤트 흐름을 거칩니다.

플러그인 이벤트 흐름
플러그인 이벤트 흐름

이벤트 세부 정보

플러그인은 플레이어의 기본 동작을 변경하기 위해 일부 작업을 시작하는 이벤트를 수신 할 수 있습니다. 이러한 이벤트는 다음과 같습니다.

  • WILL_CHANGE_VIDEO
  • SET_VIDEO
  • SET_SOURCE
  • PLAY
  • PAUSE
  • SEEK_TO
  • STOP

기본 리스너가 이벤트를 수신하지 못하도록하거나 기본이 아닌 리스너에 이벤트 전파를 중지하여 기본 동작을 변경할 수 있습니다. 기본 리스너가 이벤트를 수신하지 못하도록 방지하려면preventDefault()방법. 이벤트 전파는 다음을 호출하여 중지 할 수 있습니다. stopPropagation()방법. 을 텐데preventDefault()이 호출되면 나머지 기본이 아닌 리스너에게 알림이 전송됩니다. 을 텐데stopPropagation()이 호출되면 기본 리스너는 여전히 알림을 받지만 나머지 비 기본 리스너는 건너 뜁니다. 플러그인은 이러한 메소드를 사용하여 일반 이벤트 흐름을 일시 중지하고 플러그인 초기화와 같은 추가 동작을 삽입 할 수도 있습니다. 플러그인은 원래 이벤트를 다시 생성하여 이벤트 흐름을 재개 할 수 있습니다.

플러그인은 작업 완료를 알리는 이벤트를 수신 할 수도 있습니다. 이러한 이벤트는 일반적으로 분석 플러그인에서 사용됩니다. 이벤트에는 다음이 포함됩니다.

  • DID_CHANGE_LIST
  • DID_SELECT_SOURCE
  • DID_PAUSE
  • DID_PLAY
  • DID_SEEK_TO
  • DID_SET_SOURCE
  • DID_STOP
  • PROGRESS
  • COMPLETED

재생 중단

비디오 콘텐츠 재생을 중단하려는 플러그인은WILL_INTERRUPT_CONTENTWILL_RESUME_CONTENT . 이러한 이벤트는 일반적으로 광고 플러그인에서 사용됩니다. 플러그인은WILL_INTERRUPT_CONTENT현재 재생중인 경우 재생 일시 중지를 요청하고 비디오보기를 표시하지 않도록 요청합니다. 플러그인은WILL_RESUME_CONTENT동영상보기를 다시 표시하도록 요청합니다. 그만큼WILL_RESUME_CONTENT이벤트에는ORIGINAL_EVENT비디오 뷰가 표시된 후에 방출되는 속성입니다. 그만큼ORIGINAL_EVENT이어야합니다PLAY재생을 다시 시작하는 이벤트, CUE_POINT큐 포인트 처리를 계속하는 이벤트 또는COMPLETED이벤트 재생을 완료합니다. ㅏSKIP_CUE_POINTS속성을ORIGINAL_EVENT재귀 큐 포인트 처리를 방지합니다.

큐 포인트

많은 플러그인이CUE_POINT이벤트. 큐 포인트에는 세 가지 유형이 있습니다. BEFORE , POINT_IN_TIME , 및AFTER . BEFORE큐 포인트는 재생이 시작되기 직전에 방출됩니다. POINT_IN_TIME재생이 큐 포인트의 위치에 도달하면 큐 포인트가 방출됩니다. AFTER큐 포인트는 재생이 완료된 직후에 방출됩니다. 플러그인은WILL_INTERRUPT_CONTENTWILL_RESUME_CONTENT큐 포인트 이벤트를 처리 할 때 콘텐츠 재생을 중단하고 다시 시작하는 이벤트입니다. 큐 포인트 전후의 경우 이벤트에ORIGINAL_EVENT속성, PLAY이벤트 또는COMPLETED행사. 큐 포인트 이벤트에는CUE_POINTS큐 포인트 배치로 속성. START_TIMEEND_TIME속성은 큐 포인트 시간 범위를 정의합니다.

샘플 디렉토리

그만큼샘플 디렉토리두 개의 모듈이있는 Android Studio 기반 프로젝트가 포함됩니다.

  • SamplePlugin -새 플러그인 작성을위한 기반으로 사용할 수있는 예제 플러그인.
  • SamplePluginApplication -플러그인이 Brightcove 비디오 애플리케이션에 통합되고 SamplePlugin 또는 새 플러그인을 테스트하는 데 사용할 수있는 방법을 보여줍니다.

구현 단계

플러그인 작성 단계는 다음과 같습니다.

  1. 샘플 플러그인을 새 저장소에 복사합니다.
  2. 패키지 및 클래스 이름을 변경하십시오.
  3. 업데이트TAG이니셜 라이저.
  4. 편집@Emits@ListensFor플러그인이 내보내고 수신하는 이벤트를 반영하는 주석입니다.
  5. 필요에 따라 생성자를 수정합니다.
  6. 교체 또는 제거videoView필요한 경우 관련 논리.
  7. 수정initializeListeners()필요에 따라 이벤트 리스너를 추가 및 / 또는 빼면됩니다.
  8. 플러그인을 .aar Android Studio 용 파일.