서문
Brightcove 카탈로그에서 비디오를 검색 할 때 SDK는 재생할 소스를 결정해야합니다. 이것은 DefaultSourceSelectionController과 ExoPlayerSourceSelectionController구성 요소.
기본 선택 프로세스
Android 용 Brightcove Player SDK는 기본 소스 선택 프로세스를 사용합니다. 단순화하기 위해 Brightcove Playback API 및 Google의 ExoPlayer에 대한 SDK의 지원에 중점을 둘 것입니다.
기본 선택 프로세스는 다음과 같이 정의됩니다.
-
Android 6.4 이상용 Brightcove Native SDK를 사용하면 사용 가능한 경우 모든 소스 유형에 대한 HTTPS 전달이 선택됩니다.
둘 다 DefaultSourceSelectionController과 ExoPlayerSourceSelectionController HTTPS 버전을 선택하려고
deliveryType
선택된. HTTPS 소스가 없으면 선택 컨트롤러가 사용 가능한 첫 번째 소스를 선택합니다. - 그만큼 BrightcoveExoPlayerVideoView첫 번째 소스를 찾습니다.
deliveryType
의 MPEG-DASH및 둘 다 아닌 프로필 urn : hbbtv ...도 아니다 urn : dvb . SDK는 이러한 DASH 프로필 중 하나를 사용한 재생을 지원하지 않으므로 소스에서 필터링됩니다. - 위의 항목을 찾을 수없는 경우 소스 선택은
deliveryType
의 HLS . - 그러한 소스가 발견되지 않으면 소스로 돌아갑니다.
deliveryType
의 MP4 256kBps에 가장 가까운 비트 전송률입니다.
소스를 찾으면 다음과 같이 구현이 계속됩니다.
- 발견되면 선택한 소스가에 대한 응답과 함께 방출됩니다. SELECT_SOURCE행사.
- 기본적으로 VideoPlaybackController처리 SELECT_SOURCE응답, SET_SOURCE행사.
- 그만큼 VideoDisplayComponent또는 하위 클래스가 SET_SOURCE URL을 기본 플레이어 (ExoPlayer 또는 MediaPlayer)에로드하여 이벤트.
- 재생이 시작되면 기본 플레이어가 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();
}
});