Android: Quellenauswahl

In diesem Thema erfahren Sie, wie das Brightcove Native Player-SDK für Android bei der Wiedergabe eines Videos einen standardmäßigen Quellenauswahlprozess verwendet.

Einleitung

Wenn Sie Videos aus dem Brightcove-Katalog abrufen, muss das SDK entscheiden, welche Quelle wiedergegeben werden soll. Dies ist in der implementiert DefaultSourceSelectionController und ExoPlayerSourceSelectionController Komponenten.

Standardauswahlprozess

Das Brightcove Player SDK für Android verwendet einen standardmäßigen Quellenauswahlprozess. Zur Vereinfachung konzentrieren wir uns auf die Unterstützung des SDK für die Brightcove Playback API und den ExoPlayer von Google.

Der Standardauswahlprozess ist wie folgt definiert:

  1. Beim Brightcove Native SDK für Android 6.4+ wird die HTTPS-Zustellung für alle Quelltypen ausgewählt, sofern verfügbar.

    Beide DefaultSourceSelectionController und ExoPlayerSourceSelectionController Versuchen Sie, die HTTPS-Version des deliveryType ausgewählt. Wenn keine HTTPS-Quelle vorhanden ist, wählt der Auswahlcontroller die erste verfügbare aus.

  2. Die BrightcoveExoPlayerVideoView sucht nach der ersten Quelle mit a deliveryType von MPEG-DASH , und ein Profil, das weder ist Urne:hbbtv Noch Urne:dvb. Das SDK unterstützt die Wiedergabe mit keinem dieser DASH-Profile und wird daher aus den Quellen herausgefiltert.
  3. Wenn das Obige nicht gefunden wird, fällt die Quellenauswahl mit a . auf die erste Quelle zurück deliveryType von HLS.
  4. Wird keine solche Quelle gefunden, wird mit a . auf die Quelle zurückgegriffen deliveryType von MP4 und eine Bitrate, die 256 kBit/s am nächsten ist.

Sobald eine Quelle gefunden wurde, wird die Implementierung wie folgt fortgesetzt:

  1. Wenn sie gefunden wird, wird die ausgewählte Quelle mit einer Antwort auf die QUELLE AUSWÄHLEN Veranstaltung.
  2. Standardmäßig ist die VideoPlaybackController handhabt die QUELLE AUSWÄHLEN Antwort durch Aussendung von a SET_SOURCE Veranstaltung.
  3. Die VideoDisplayKomponente oder eine Unterklasse behandelt die SET_SOURCE durch Laden der URL in den zugrunde liegenden Player (ExoPlayer oder MediaPlayer).
  4. Wenn die Wiedergabe beginnt, ist der zugrunde liegende Player für die Anpassung der Bitrate an HLS- und DASH-Inhalte verantwortlich. Bei HLS startet der zugrunde liegende Player mit der ersten Bitrate, die im Master-Manifest aufgeführt ist.

Wenn Sie die Standard-Transcodierungseinstellungen verwenden, sollte die erste HLS-Quelle die Master-m3u8-Wiedergabeliste sein, die auf alle Ihre individuellen Quellen (Wiedergabeversionen) verweist.

Einstellen von HLS-Quellen

Es ist möglich, die Quellenauswahl auf App-Ebene anzupassen, um unerwünschte Übermittlungstypen herauszufiltern, bevor die standardmäßige Quellenauswahlrichtlinie des SDK aufgerufen wird. Zu diesem Zweck können Sie die Quellensammlungen ändern, die in das Video-Objekt aus der JSON-Antwort der Wiedergabe-API eingestellt werden.

In diesem Beispiel VideoUtil.filterSourcesOnDeliveryType werden nur HLS-Quellen einbezogen:

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();
	}
});