はじめに
Brightcoveのカタログから動画を取得する場合、SDK は再生するソースを決定する必要があります。これは、 DefaultSourceSelectionController コンポーネントと ExoPlayerSourceSelectionController コンポーネントに実装されています。
デフォルトの選択プロセス
Android 用 Brightcove Player SDK では、デフォルトのソース選択プロセスが使用されます。簡単にするために、SDK によるBrightcove再生 API および Google の exoPlayer のサポートに重点を置きます。
デフォルトの選択プロセスは次のように定義されます。
-
Android 6.4 以降の Brightcove ネイティブ SDK では、利用可能な場合、すべてのソースタイプの HTTPS 配信が選択されます。
DefaultSourceSelectionController と ExoPlayerSourceSelectionController の両方が、
deliveryType選択したの HTTPS バージョンを選択しようとします。HTTPS ソースが存在しない場合、選択コントローラは最初に使用可能なソースを選択します。 - NS BrightcoveExoPlayerVideoViewを持っている最初のソースを探します
deliveryTypeのMPEG-DASH、およびどちらでもないプロファイルurn:hbbtvまたはurn:dvb。SDK は、これらの DASH プロファイルのどちらでも再生をサポートしていないため、ソースから除外されます。 - 上記が見つからない場合、ソースの選択は最初のソースにフォールバックします。
deliveryTypeのHLS。 - そのようなソースが見つからない場合は、ソースにフォールバックします。
deliveryTypeのMP4 256kBpsに最も近いビットレート。
ソースが見つかると、次のように実装が続行されます。
- 見つかった場合、選択したソースは SELECT_SOURCE イベントに対する応答とともに放出されます。
- デフォルトでは、 VideoPlaybackControllerを処理しますSELECT_SOURCE応答、放出することによってSET_SOURCEイベント。
- VideoDisplayComponent またはサブクラスは、基になるプレーヤー (exoPlayer または MediaPlayer) に URL をロードすることによって、 SET_SOURCE イベントを処理します。
- 再生が開始されると、基になるプレーヤーが HLS コンテンツと DASH コンテンツでビットレートを調整します。HLS では、基になるプレーヤーはマスターマニフェストにリストされている最初のビットレートから始まります。
デフォルトのトランスコード設定を使用する場合、最初の HLS ソースは、個々のソース (レンディション) をすべて指すマスター m3u8 プレイリストである必要があります。
HLS ソースの設定
SDK のデフォルトのソース選択ポリシーが呼び出される前に、アプリレベルでソース選択をカスタマイズして、望ましくない配信タイプを除外することができます。これを行うには、Playback API の JSON レスポンスから Video オブジェクトに設定されるソースコレクションを変更します。
この例では、HLS ソースのみを使用します。
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();
}
});