Verzögerung der Player-Instanziierung

In diesem Thema erfahren Sie, wie Sie die Instanziierung von Brightcove Player verzögern, wenn eine HTML-Seite durchsucht wird. Anwendungsfälle, in denen diese Technik hilfreich ist, sind beispielsweise Lightbox-Stile und Web-Apps für einzelne Seiten, bei denen die Seite mit dem Player zunächst nicht instanziiert wird.

Instanziierung verzögern

Es gibt einige Anwendungsfälle, in denen Sie den Implementierungscode für den erweiterten Player (in die Seite einbetten) verwenden möchten, die Instanziierung des Players jedoch verzögern möchten. Dazu müssen Sie die ändern <videos-js> Tags Attribute und verwenden Sie die bc() Methode zum Initialisieren des Players. Beachten Sie, dass die Methode entweder die Spieler-ID oder das Spielerelement selbst als Argument verwenden kann.

Ändern Sie das Video-JS-Tag

Wenn Sie die Instanziierung des Players verzögern, können Sie NICHT alle verwenden <video-js> Tags Attribute, oder der Spieler wird instanziiert. Sie müssen drei der Attribute aus dem erweiterten Standardcode (Einbetten in die Seite) entfernen. Die Attribute, die entfernt werden müssen, sind:

  • data-account
  • data-player
  • data-video-id

Dadurch bleiben die folgenden Attribute in der <video-js> Etikett:

  • data-embed
  • class
  • controls (optional)

Der Grund, warum die Attribute entfernt werden müssen, da eines dieser drei Attribute erhalten bleibt, führt dazu, dass Brightcove Player instanziiert wird.

Der verwendete erweiterte Code sollte auf dem folgenden Codeausschnitt gemustert sein. Beachten Sie, dass ein id wird dem Tag hinzugefügt.

<video-js id="myPlayerID"
  data-embed="default"
  controls=""></video-js>
<script src="https://players.brightcove.net/1507807800001/5e28670f-28ce-4ed6-8809-227784965834_default/index.min.js"></script>

Diese Änderungen am erweiterten Code und am JavaScript-Code, die unten gezeigt werden, wirken zusammen, um die Instanziierung des Players zu verzögern.

JavaScript verwendet

Es ist sehr üblich, Code zu verwenden, der dem folgenden ähnelt, um sich auf die programmgesteuerte Interaktion mit dem Player vorzubereiten:

videojs.getPlayer('myPlayerID').ready(function() {
  var myPlayer = this;
});

Dieser Ansatz kann nicht verwendet werden, da er den Spieler instanziieren würde. Stattdessen verwenden Sie die bc() Methode zum Instanziieren des Players, nachdem andere Einstellungen vorgenommen wurden. Diese bc() Die Methode wird zum Erstellen einer neuen Instanz von Brightcove Player verwendet und normalerweise bei Verwendung von automatisch aufgerufen <video-js> Tag, es sei denn, die hier beschriebenen Schritte werden befolgt.

  • Zeilen 2-3: Deklarieren Sie eine Variable für den Spieler und holen Sie sich das video-js Element.
  • Zeilen 4-5: Verwenden Sie die setAttribute() JavaScript-Methode um das data-account und festzulegen data-player. Dies ist wichtig für die Verfolgung von Analysen und anderen Diensten.
  • Zeile 6: Verwendet die setAttribute() JavaScript-Methode, um die Video-ID festzulegen.
  • Zeile 9: Verwendet die bc() Methode, um den Player zu initialisieren.
  • Zeilen 12-15: Spielt das Video programmgesteuert ab. Wenn Sie auf den Versand des loadedmetadata Ereignisses warten, wird sichergestellt, dass das Video vom Katalog abgerufen wurde, bevor es versucht zu spielen.
<script type="text/javascript">
  var myPlayer,
    vTag = document.getElementById('myPlayerID');
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');
  vTag.setAttribute('data-video-id', 2114345470001);

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.on('loadedmetadata',function(){
    myPlayer.muted(true);
    myPlayer.play();
  });
</script>
  • Zeilen 2-3: Deklarieren Sie eine Variable für den Spieler und holen Sie sich das video-js Element.
  • Zeilen 4-5: Verwenden Sie die setAttribute() JavaScript-Methode um das data-account und festzulegen data-player. Dies ist wichtig für die Verfolgung von Analysen und anderen Diensten.
  • Zeile 8: Verwendet die bc() Methode, um den Player zu initialisieren.
  • Zeile 10: Legt das src für den Spieler fest. es ist sehr wichtig um beide einzustellen src und type für das Quellobjekt. In einigen Browsern können Probleme auftreten, wenn die erste Option in der Reihenfolge der Wiedergabetechnologie nicht mit dem Typ des Videos übereinstimmt.
  • Zeile 13: Spielt das Video programmgesteuert ab. Dies ist natürlich nicht erforderlich.
<script type="text/javascript">
  var myPlayer,
    vTag = document.getElementById('myPlayerID');
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  myPlayer.src({ src: "//solutions.brightcove.com/bcls/assets/videos/Tiger.m3u8", type: "application/x-mpegURL"});
  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.muted(true);
  myPlayer.play();
</script> 

Nein id auf dem Spieler

Wenn Sie aus irgendeinem Grund keine verwenden möchten id Mit Ihrem Player können Sie den folgenden Code verwenden, um die Instanziierung zu verzögern.

  • Zeilen 3-4: Deklarieren Sie eine Variable für den Spieler und holen Sie sich das video-js Element.
  • Zeilen 7-8: Verwenden Sie die setAttribute() JavaScript-Methode um das data-account und festzulegen data-player. Dies ist wichtig für die Verfolgung von Analysen und anderen Diensten.
  • Zeile 9: Verwendet die setAttribute() JavaScript-Methode, um die Video-ID festzulegen.
  • Zeile 12: Verwendet die bc() Methode, um den Player zu initialisieren.
  • Zeilen 15-18: Spielt das Video programmgesteuert ab. Wenn Sie auf den Versand des loadedmetadata Ereignisses warten, wird sichergestellt, dass das Video vom Katalog abgerufen wurde, bevor es versucht zu spielen.
<script type="text/javascript">
  // Retrieve the element by tag name, returns an array so use the zeroth array element
  var myPlayer,
    vTag = document.getElementsByTagName('video-js')[0];

  // Assign the needed attributes
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');
  vTag.setAttribute('data-video-id', 2114345470001);

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.on('loadedmetadata',function(){
    myPlayer.muted(true);
    myPlayer.play();
  });
</script>
  • Zeilen 3-4: Deklarieren Sie eine Variable für den Spieler und holen Sie sich das video-js Element.
  • Zeilen 7-8: Verwenden Sie die setAttribute() JavaScript-Methode um das data-account und festzulegen data-player. Dies ist wichtig für die Verfolgung von Analysen und anderen Diensten.
  • Zeile 11: Verwendet die bc() Methode, um den Player zu initialisieren.
  • Zeile 13: Legt das src für den Spieler fest. es ist sehr wichtig um beide einzustellen src und type für das Quellobjekt. In einigen Browsern können Probleme auftreten, wenn die erste Option in der Reihenfolge der Wiedergabetechnologie nicht mit dem Typ des Videos übereinstimmt.
  • Zeile 16: Spielt das Video programmgesteuert ab. Dies ist natürlich nicht erforderlich.
<script type="text/javascript">
  // Retrieve the element by tag name, returns an array so use the zeroth array element
  var myPlayer,
    vTag = document.getElementsByTagName('video-js')[0];

  // Assign the needed attributes
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc('vTag');

  myPlayer.src({ src: "//solutions.brightcove.com/bcls/assets/videos/Tiger.m3u8", type: "application/x-mpegURL"});
  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.muted(true);
  myPlayer.play();
</script> 

CSAI mit SSAI-Anzeigenfailover

Bei aktiviertem Anzeigenfailover erkennt der Brightcove Player, ob im Browser ein Werbeblocker vorhanden ist. Wenn nicht, werden Ihre clientseitigen Anzeigen (CSAI) abgespielt. Wenn ein Werbeblocker erkannt wird, fordert der Player automatisch Ihre serverseitigen Anzeigen (SSAI) an. Einzelheiten finden Sie in der SSAI: Erkennung von Anzeigenblöcken und automatisches Failover Dokument.

Standardmäßig wird die aufgerufen bc() Methode zwingt den Spieler, sofort zu initialisieren. Wenn Sie Ad Failover mit dem verwenden möchten bc() Methode müssen Sie warten, bis der Player überprüft, ob ein Werbeblocker vorhanden ist. Sie können dies mit dem folgenden Code tun:

bc.usingAdBlocker().then(function() {
  // The promise callback receives a true/false result, which is stored
  // internally, so future bc() calls will use it. There is no need to
  // handle it yourself.
  //
  // You can pass custom arguments to bc, as normal, if needed.
  bc();
});

Beispiel

Hier ist ein Beispielcode.

HTML

Dies ist der HTML-Code für das Beispiel.

<video-js id="myPlayerID"
	data-embed="default"
	data-application-id=""	
	controls=""
	width="640"
	height="360"></video-js>
<script src="//players.brightcove.net/1752604059001/W6RmT8TVL_default/index.min.js"></script>

JavaScript

Dies ist das JavaScript für das Beispiel.

<script type="text/javascript">
  // +++ Define the player options +++
  var options = {
    controlBar: {
      volumePanel: {
        inline: false,
        vertical: true
      }
    }
  };

  // +++ Add the player attributes +++
  var myPlayer,
		myPlayerEl = document.getElementById("myPlayerID");
  myPlayerEl.setAttribute('data-account', 1752604059001);
  myPlayerEl.setAttribute('data-player', 'W6RmT8TVL');
  myPlayerEl.setAttribute('data-video-id', 5802784116001);

  // +++ Create the player +++
  bc.usingAdBlocker().then(function() {
    myPlayer = bc(myPlayerEl, options);

    // +++ Optionally, mute and start playback +++
    myPlayer.on('loadedmetadata',function(){
      myPlayer.muted(true);
      myPlayer.play();
    });
  });
</script>