안드로이드 : 소스 선택

이 주제에서는 Android용 브라이트코브 네이티브 플레이어 SDK가 비디오를 재생할 때 기본 소스 선택 프로세스를 사용하는 방법에 대해 설명합니다.

서문

Brightcove 카탈로그에서 비디오를 검색 할 때 SDK는 재생할 소스를 결정해야합니다. 이것은 DefaultSourceSelectionController ExoPlayerSourceSelectionController구성 요소.

기본 선택 프로세스

Android 용 Brightcove Player SDK는 기본 소스 선택 프로세스를 사용합니다. 단순화하기 위해 Brightcove Playback API 및 Google의 ExoPlayer에 대한 SDK의 지원에 중점을 둘 것입니다.

기본 선택 프로세스는 다음과 같이 정의됩니다.

  1. Android 6.4 이상용 Brightcove Native SDK를 사용하면 사용 가능한 경우 모든 소스 유형에 대한 HTTPS 전달이 선택됩니다.

    둘 다 DefaultSourceSelectionController ExoPlayerSourceSelectionController HTTPS 버전을 선택하려고deliveryType선택된. HTTPS 소스가 없으면 선택 컨트롤러가 사용 가능한 첫 번째 소스를 선택합니다.

  2. 그만큼 BrightcoveExoPlayerVideoView첫 번째 소스를 찾습니다. deliveryType MPEG-DASH및 둘 다 아닌 프로필 urn : hbbtv ...도 아니다 urn : dvb . SDK는 이러한 DASH 프로필 중 하나를 사용한 재생을 지원하지 않으므로 소스에서 필터링됩니다.
  3. 위의 항목을 찾을 수없는 경우 소스 선택은deliveryType HLS .
  4. 그러한 소스가 발견되지 않으면 소스로 돌아갑니다. deliveryType MP4 256kBps에 가장 가까운 비트 전송률입니다.

소스를 찾으면 다음과 같이 구현이 계속됩니다.

  1. 발견되면 선택한 소스가에 대한 응답과 함께 방출됩니다. SELECT_SOURCE행사.
  2. 기본적으로 VideoPlaybackController처리 SELECT_SOURCE응답, SET_SOURCE행사.
  3. 그만큼 VideoDisplayComponent또는 하위 클래스가 SET_SOURCE URL을 기본 플레이어 (ExoPlayer 또는 MediaPlayer)에로드하여 이벤트.
  4. 재생이 시작되면 기본 플레이어가 HLS 및 DASH 콘텐츠로 비트 전송률을 조정해야합니다. HLS를 사용하면 기본 플레이어가 마스터 매니페스트에 나열된 첫 번째 비트 전송률로 시작됩니다.

기본 트랜스 코딩 설정을 사용할 때 첫 번째 HLS 소스는 모든 개별 소스 (변환)를 가리키는 마스터 m3u8 재생 목록이어야합니다.

HLS 소스 설정

SDK의 기본 소스 선택 정책이 호출되기 전에 원치 않는 전송 유형을 필터링하기 위해 앱 수준에서 소스 선택을 사용자 지정할 수 있습니다. 이렇게 하려면 Playback API의 JSON 응답에서 Video 객체로 설정된 소스 컬렉션을 수정할 수 있습니다.

이 예에서는 HLS 소스만 포함하는VideoUtil.filterSourcesOnDeliveryType데 사용합니다.

catalog.findVideoByReferenceID(videoReferenceId, new com.brightcove.player.edge.VideoListener() {
	@Override
	public void onVideo(Video video) {
      VideoUtil.filterSourcesOnDeliveryType(video, DeliveryType.HLS);
      brightcoveVideoView.add(video);
      brightcoveVideoView.start();
	}
});