Mit der Iframe-Player-API kannst du auf deiner Website einen YouTube-Videoplayer einbetten und den Player mit JavaScript steuern.
Mit den JavaScript-Funktionen der API kannst du Videos zu Wiedergabelisten hinzufügen und diese Videos wiedergeben, pausieren oder anhalten, die Lautstärke des Players einstellen oder Informationen zum wiedergegebenen Video abrufen. Du kannst auch Ereignis-Listener hinzufügen, die als Reaktion auf bestimmte Player-Ereignisse ausgeführt werden, z. B. eine Änderung des Player-Status.
In diesem Leitfaden wird erläutert, wie du die IFrame API verwendest. Dort werden die verschiedenen Ereignistypen aufgeführt, die die API senden kann, und es wird erklärt, wie Sie Ereignis-Listener schreiben, um auf diese Ereignisse zu reagieren. Zudem werden sowohl die verschiedenen JavaScript-Funktionen vorgestellt, die du aufrufen kannst, um den Videoplayer zu steuern, als auch die Player-Parameter, mit denen du den Player noch individueller gestalten kannst.
Voraussetzungen
Der Browser des Nutzers muss die HTML5-Funktion postMessage
unterstützen. postMessage
wird von den meisten modernen Browsern unterstützt.
Eingebettete Player müssen einen Darstellungsbereich mit mindestens 200 x 200 Pixel haben. Wenn die Steuerung angezeigt wird, muss der Player groß genug sein, um die Steuerelemente vollständig anzuzeigen, ohne dass der Darstellungsbereich dabei die genannte Mindestgröße unterschreitet. Für 16:9-Player empfehlen wir eine Breite von mindestens 480 Pixel und eine Höhe von mindestens 270 Pixel.
Webseiten, die die IFrame API verwenden, müssen auch die folgende JavaScript-Funktion implementieren:
-
onYouTubeIframeAPIReady
: Die API ruft diese Funktion auf, wenn das JavaScript für die Player API vollständig heruntergeladen wurde. Anschließend kannst du die API auf deiner Seite verwenden. Diese Funktion kann die Player-Objekte erstellen, die beim Laden der Seite angezeigt werden sollen.
Erste Schritte
Die folgende HTML-Beispielseite erstellt einen eingebetteten Player, der ein Video lädt, dieses sechs Sekunden lang wiedergibt und anschließend die Wiedergabe stoppt. Die nummerierten Kommentare im HTML-Code werden in der Liste unter dem Beispiel erklärt.
<!DOCTYPE html> <html> <body> <!-- 1. The <iframe> (and video player) will replace this <div> tag. --> <div id="player"></div> <script> // 2. This code loads the IFrame Player API code asynchronously. var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // 3. This function creates an <iframe> (and YouTube player) // after the API code downloads. var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '390', width: '640', videoId: 'M7lc1UVf-VE', playerVars: { 'playsinline': 1 }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } // 4. The API will call this function when the video player is ready. function onPlayerReady(event) { event.target.playVideo(); } // 5. The API calls this function when the player's state changes. // The function indicates that when playing a video (state=1), // the player should play for six seconds and then stop. var done = false; function onPlayerStateChange(event) { if (event.data == YT.PlayerState.PLAYING && !done) { setTimeout(stopVideo, 6000); done = true; } } function stopVideo() { player.stopVideo(); } </script> </body> </html>
In der folgenden Liste werden weitere Informationen zum obigen Beispiel bereitgestellt.
-
Mit dem
<div>
-Tag in diesem Abschnitt wird der Ort auf der Seite angegeben, an dem die IFrame API den Videoplayer platziert. Der Konstruktor für das Player-Objekt, der im Abschnitt Videoplayer laden beschrieben wird, identifiziert das<div>
-Tag anhand seinesid
, damit die API die<iframe>
an der richtigen Stelle platziert. Insbesondere ersetzt die IFrame API das<div>
-Tag durch das<iframe>
-Tag.Alternativ können Sie das
<iframe>
-Element auch direkt auf der Seite platzieren. Im Abschnitt Videoplayer laden wird dies erläutert. -
Der Code in diesem Abschnitt lädt den JavaScript-Code der Iframe Player API. Im Beispiel wird der API-Code mithilfe einer DOM-Änderung heruntergeladen, damit der Code asynchron abgerufen wird. Das
async
-Attribut des<script>
-Tags, das auch asynchrone Downloads ermöglicht, wird in dieser Stack Overflow-Antwort erläutert und wird noch nicht von allen modernen Browsern unterstützt. -
Die Funktion
onYouTubeIframeAPIReady
wird ausgeführt, sobald der Player API-Code heruntergeladen wurde. In diesem Codeabschnitt wird die globale Variableplayer
definiert, die sich auf den eingebetteten Videoplayer bezieht. Die Funktion erstellt dann das Videoplayer-Objekt. -
Die Funktion
onPlayerReady
wird ausgeführt, wenn das EreignisonReady
ausgelöst wird. In diesem Beispiel zeigt die Funktion an, dass die Wiedergabe beginnen sollte, wenn der Videoplayer bereit ist. -
Die API ruft die Funktion
onPlayerStateChange
auf, wenn sich der Status des Players ändert. Dies kann beispielsweise bedeuten, dass der Player wiedergegeben, pausiert oder beendet wird. Die Funktion gibt an, dass der Player, wenn sein Status1
(Wiedergabe) ist, sechs Sekunden lang wiedergegeben werden und dann die FunktionstopVideo
aufgerufen werden soll, um das Video anzuhalten.
Videoplayer laden
Nachdem der JavaScript-Code der API geladen wurde, ruft die API die onYouTubeIframeAPIReady
-Funktion auf. Anschließend kannst du ein YT.Player
-Objekt erstellen, um einen Videoplayer auf deiner Seite einzufügen. Im folgenden HTML-Ausschnitt ist die Funktion onYouTubeIframeAPIReady
aus dem Beispiel oben zu sehen:
var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '390', width: '640', videoId: 'M7lc1UVf-VE', playerVars: { 'playsinline': 1 }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); }
Der Konstruktor für den Videoplayer gibt die folgenden Parameter an:
-
Der erste Parameter gibt entweder das DOM-Element oder das
id
des HTML-Elements an, an dem die API das<iframe>
-Tag mit dem Player einfügt.Die IFrame API ersetzt das angegebene Element durch das Element
<iframe>
, das den Player enthält. Das kann sich auf das Layout Ihrer Seite auswirken, wenn das ersetzte Element einen anderen Darstellungsstil als das eingefügte<iframe>
-Element hat. Standardmäßig wird ein<iframe>
alsinline-block
-Element angezeigt. - Beim zweiten Parameter handelt es sich um ein Objekt, das Player-Optionen angibt. Das Objekt enthält die folgenden Eigenschaften:
width
(Zahl): Die Breite des Videoplayers. Der Standardwert ist640
.height
(Zahl): Die Höhe des Videoplayers. Der Standardwert ist390
.videoId
(String): Die YouTube-Video-ID, die das Video identifiziert, das der Player lädt.playerVars
(Objekt): Die Eigenschaften des Objekts geben Player-Parameter an, mit denen der Player angepasst werden kann.events
(Objekt): Die Eigenschaften des Objekts identifizieren die Ereignisse, die von der API ausgelöst werden, und die Funktionen (Ereignis-Listener), die die API bei diesen Ereignissen aufruft. Im Beispiel gibt der Konstruktor an, dass die FunktiononPlayerReady
ausgeführt wird, wenn das EreignisonReady
ausgelöst wird, und dass die FunktiononPlayerStateChange
ausgeführt wird, wenn das EreignisonStateChange
ausgelöst wird.
Wie im Abschnitt Einstieg erwähnt, kannst du anstelle eines leeren <div>
-Elements auf deiner Seite, das dann vom JavaScript-Code der Player API durch ein <iframe>
-Element ersetzt wird, das <iframe>
-Tag selbst erstellen. Das erste Beispiel im Abschnitt Beispiele zeigt, wie das geht.
<iframe id="player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1&origin=http://example.com" frameborder="0"></iframe>
Wenn du das <iframe>
-Tag schreibst, musst du beim Erstellen des YT.Player
-Objekts keine Werte für width
und height
angeben, die als Attribute des <iframe>
-Tags angegeben sind, oder für die videoId
- und Player-Parameter, die in der src
-URL angegeben sind. Als zusätzliche Sicherheitsmaßnahme sollten Sie der URL auch den Parameter origin
hinzufügen. Geben Sie dabei das URL-Schema (http://
oder https://
) und die vollständige Domain Ihrer Hostseite als Parameterwert an. origin
ist optional. Wenn du ihn einfügst, wird verhindert, dass schädliches JavaScript von Drittanbietern in deine Seite eingeschleust und die Kontrolle über deinen YouTube-Player übernommen wird.
Weitere Beispiele zum Erstellen von Videoplayer-Objekten findest du unter Beispiele.
Vorgänge
Zum Aufrufen der Player-API-Methoden musst du zunächst eine Referenz für das Player-Objekt erhalten, das du steuern möchtest. Sie erhalten die Referenz, indem Sie ein YT.Player
-Objekt erstellen, wie in den Abschnitten Erste Schritte und Videoplayer laden dieses Dokuments beschrieben.
Funktionen
Wiedergabelisten-Funktionen
Mit Wiedergabelisten-Funktionen kannst du Videos, Playlists sowie andere Videolisten laden und wiedergeben. Wenn du diese Funktionen mit der unten beschriebenen Objektsyntax aufrufst, kannst du auch eine Liste der von einem Nutzer hochgeladenen Videos in die Wiedergabeliste aufnehmen oder laden.
Die API unterstützt zwei verschiedene Syntaxen zum Aufrufen der Wiedergabelisten-Funktionen.
-
Für die Argumentsyntax müssen die Funktionsargumente in der vorgesehenen Reihenfolge aufgelistet werden.
-
Mit der Objektsyntax kannst du ein Objekt als einzelnen Parameter zuweisen und Objekteigenschaften für die Funktionsargumente definieren, die du festlegen möchtest. Darüber hinaus ist es möglich, dass die API Funktionen unterstützt, die von der Argumentsyntax nicht unterstützt werden.
Die Funktion loadVideoById
kann beispielsweise auf eine der folgenden Arten aufgerufen werden. Die Objektsyntax unterstützt die Property endSeconds
, die Argumentsyntax jedoch nicht.
-
Syntax von Argumenten
loadVideoById("bHQqvYy5KYo", 5, "large")
-
Objektsyntax
loadVideoById({'videoId': 'bHQqvYy5KYo', 'startSeconds': 5, 'endSeconds': 60});
Wiedergabelisten-Funktionen für Videos
cueVideoById
-
-
Syntax von Argumenten
player.cueVideoById(videoId:String, startSeconds:Number):Void
-
Objektsyntax
player.cueVideoById({videoId:String, startSeconds:Number, endSeconds:Number}):Void
Diese Funktion lädt das Thumbnail des angegebenen Videos und bereitet den Player auf die Wiedergabe des Videos vor. Der Player fordert das FLV erst an, wenn
playVideo()
oderseekTo()
aufgerufen wird.- Der erforderliche Parameter
videoId
gibt die YouTube-Video-ID des abzuspielenden Videos an. In der YouTube Data API wird die ID über die Propertyid
einervideo
-Ressource angegeben. - Der optionale Parameter
startSeconds
kann einen Float-/Ganzzahlwert annehmen und gibt an, ab wann das Video abgespielt werden soll, wennplayVideo()
aufgerufen wird. Wenn du einenstartSeconds
-Wert angibst und dannseekTo()
aufrufst, beginnt der Player mit der Wiedergabe ab der imseekTo()
-Aufruf angegebenen Zeit. Wenn das Video cued ist und wiedergegeben werden kann, sendet der Player das Ereignisvideo cued
(5
). - Der optionale Parameter
endSeconds
, der nur in der Objektsyntax unterstützt wird, kann einen Float-/Integerwert annehmen und gibt an, wann die Wiedergabe des Videos beendet werden soll, wennplayVideo()
aufgerufen wird. Wenn Sie einenendSeconds
-Wert angeben und dannseekTo()
aufrufen, ist derendSeconds
-Wert nicht mehr gültig.
-
loadVideoById
-
-
Syntax von Argumenten
player.loadVideoById(videoId:String, startSeconds:Number):Void
-
Objektsyntax
player.loadVideoById({videoId:String, startSeconds:Number, endSeconds:Number}):Void
Diese Funktion lädt das angegebene Video und gibt es wieder.
- Der erforderliche Parameter
videoId
gibt die YouTube-Video-ID des abzuspielenden Videos an. In der YouTube Data API wird die ID über die Propertyid
einervideo
-Ressource angegeben. - Der optionale Parameter
startSeconds
akzeptiert eine Gleitkommazahl oder Ganzzahl. Wird sie angegeben, beginnt das Video mit dem Keyframe, der dem angegebenen Zeitpunkt am nächsten ist. - Der optionale Parameter
endSeconds
akzeptiert eine Gleitkommazahl oder Ganzzahl. Wird sie angegeben, wird die Wiedergabe des Videos zum angegebenen Zeitpunkt beendet.
-
cueVideoByUrl
-
-
Syntax von Argumenten
player.cueVideoByUrl(mediaContentUrl:String, startSeconds:Number):Void
-
Objektsyntax
player.cueVideoByUrl({mediaContentUrl:String, startSeconds:Number, endSeconds:Number}):Void
Diese Funktion lädt das Thumbnail des angegebenen Videos und bereitet den Player auf die Wiedergabe des Videos vor. Der Player fordert das FLV erst an, wenn
playVideo()
oderseekTo()
aufgerufen wird.- Der erforderliche Parameter
mediaContentUrl
gibt eine vollständig qualifizierte YouTube-Player-URL im Formathttp://www.youtube.com/v/VIDEO_ID?version=3
an. - Der optionale Parameter
startSeconds
kann einen Float-/Ganzzahlwert annehmen und gibt an, ab wann das Video abgespielt werden soll, wennplayVideo()
aufgerufen wird. Wenn dustartSeconds
festlegst und dannseekTo()
aufrufst, wird der Player ab der imseekTo()
-Aufruf angegebenen Zeit wiedergegeben. Wenn das Video cued ist und abgespielt werden kann, sendet der Player einvideo cued
-Ereignis (5). - Der optionale Parameter
endSeconds
, der nur in der Objektsyntax unterstützt wird, kann einen Float-/Integerwert annehmen und gibt an, wann die Wiedergabe des Videos beendet werden soll, wennplayVideo()
aufgerufen wird. Wenn Sie einenendSeconds
-Wert angeben und dannseekTo()
aufrufen, ist derendSeconds
-Wert nicht mehr gültig.
-
loadVideoByUrl
-
-
Syntax von Argumenten
player.loadVideoByUrl(mediaContentUrl:String, startSeconds:Number):Void
-
Objektsyntax
player.loadVideoByUrl({mediaContentUrl:String, startSeconds:Number, endSeconds:Number}):Void
Diese Funktion lädt das angegebene Video und gibt es wieder.
- Der erforderliche Parameter
mediaContentUrl
gibt eine vollständig qualifizierte YouTube-Player-URL im Formathttp://www.youtube.com/v/VIDEO_ID?version=3
an. - Der optionale Parameter
startSeconds
kann einen Gleitkomma-/Ganzzahlwert annehmen und gibt an, ab wann das Video wiedergegeben werden soll. WennstartSeconds
(eine Zahl, die auch ein Gleitkommawert sein kann) angegeben ist, beginnt das Video mit dem nächstgelegenen Keyframe zur angegebenen Zeit. - Der optionale Parameter
endSeconds
, der nur in der Objektsyntax unterstützt wird, akzeptiert einen Gleitkomma-/Ganzzahlwert und gibt an, wann die Wiedergabe des Videos beendet werden soll.
-
Wiedergabelisten-Funktionen für Listen
Mit den Funktionen cuePlaylist
und loadPlaylist
kannst du eine Playlist laden und abspielen. Wenn du diese Funktionen mithilfe der Objektsyntax aufrufst, kannst du auch eine Liste der hochgeladenen Videos eines Nutzers in die Wiedergabeliste aufnehmen (oder laden).
Die Arbeitsweise der Funktionen richtet sich danach, ob sie mit der Argument- oder der Objektsyntax aufgerufen werden. Die beiden Methoden werden im Folgenden beschrieben.
cuePlaylist
-
-
Syntax von Argumenten
Die angegebene Playlist wird der Wiedergabeliste hinzugefügt. Wenn die Playlist cued ist und abgespielt werden kann, sendet der Player einplayer.cuePlaylist(playlist:String|Array, index:Number, startSeconds:Number):Void
video cued
-Ereignis (5
).-
Der erforderliche Parameter
playlist
gibt ein Array mit YouTube-Video-IDs an. In der YouTube Data API wird die ID des Videos durch das Attributid
der Ressourcevideo
angegeben. -
Der optionale Parameter
index
gibt den Index des ersten Videos in der Playlist an, das wiedergegeben werden soll. Der Parameter verwendet eine nullbasierte Indexierung und der Standardparameterwert ist0
. Standardmäßig wird also das erste Video in der Playlist geladen und abgespielt. -
Der optionale Parameter
startSeconds
kann einen Gleitkomma-/Ganzzahlwert annehmen und gibt an, ab wann das erste Video in der Playlist abgespielt werden soll, wenn die FunktionplayVideo()
aufgerufen wird. Wenn du einenstartSeconds
-Wert angibst und dannseekTo()
aufrufst, wird der Player ab der imseekTo()
-Aufruf angegebenen Zeit wiedergegeben. Wenn du eine Playlist anzeigst und dann die FunktionplayVideoAt()
aufrufst, beginnt die Wiedergabe im Player am Anfang des angegebenen Videos.
-
-
Objektsyntax
Die angegebene Liste von Videos wird der Wiedergabeliste hinzugefügt. Die Liste kann eine Playlist oder der Feed mit den hochgeladenen Videos eines Nutzers sein. Die Möglichkeit, eine Liste von Suchergebnissen in die Wiedergabeliste aufzunehmen, wird eingestellt und ab demplayer.cuePlaylist({listType:String, list:String, index:Number, startSeconds:Number}):Void
15. November 2020 nicht mehr unterstützt.Wenn die Liste cued ist und abgespielt werden kann, sendet der Player ein
video cued
-Ereignis (5
).-
Mit der optionalen Property
listType
wird der Typ des Ergebnisfeeds angegeben, der abgerufen wird. Gültige Werte sindplaylist
unduser_uploads
. Der eingestellte Wertsearch
wird ab dem15. November 2020 nicht mehr unterstützt. Der Standardwert istplaylist
. -
Die erforderliche Property
list
enthält einen Schlüssel, der die Liste der Videos angibt, die von YouTube zurückgegeben werden sollen.- Wenn der Wert des Attributs
listType
playlist
ist, gibt das Attributlist
die Playlist-ID oder ein Array von Video-IDs an. In der YouTube Data API wird mit dem Attributid
der Ressourceplaylist
die ID einer Playlist angegeben. Das Attributid
der Ressourcevideo
gibt eine Video-ID an. - Wenn der Wert der Property
listType
user_uploads
ist, wird mit der Propertylist
der Nutzer identifiziert, dessen hochgeladene Videos zurückgegeben werden. - Wenn der Wert der Property
listType
search
ist, wird die Suchanfrage in der Propertylist
angegeben. Hinweis:Diese Funktion wurde eingestellt und wird ab dem15. November 2020 nicht mehr unterstützt.
- Wenn der Wert des Attributs
-
Mit der optionalen Property
index
wird der Index des ersten Videos in der Liste angegeben, das wiedergegeben werden soll. Der Parameter verwendet einen nullbasierten Index und der Standardparameterwert ist0
. Standardmäßig wird also das erste Video in der Liste geladen und abgespielt. -
Die optionale Eigenschaft
startSeconds
akzeptiert eine Gleitkommazahl/Ganzzahl und gibt an, ab wann das erste Video in der Liste wiedergegeben werden soll, wenn die FunktionplayVideo()
aufgerufen wird. Wenn du einenstartSeconds
-Wert angibst und dannseekTo()
aufrufst, wird der Player ab der imseekTo()
-Aufruf angegebenen Zeit wiedergegeben. Wenn du eine Liste anzeigst und dann die FunktionplayVideoAt()
aufrufst, beginnt die Wiedergabe im Player am Anfang des angegebenen Videos.
-
-
loadPlaylist
-
-
Syntax von Argumenten
Diese Funktion lädt die angegebene Playlist und spielt sie ab.player.loadPlaylist(playlist:String|Array, index:Number, startSeconds:Number):Void
-
Der erforderliche Parameter
playlist
gibt ein Array mit YouTube-Video-IDs an. In der YouTube Data API wird in der Propertyid
der Ressourcevideo
eine Video-ID angegeben. -
Der optionale Parameter
index
gibt den Index des ersten Videos in der Playlist an, das wiedergegeben werden soll. Der Parameter verwendet eine nullbasierte Indexierung und der Standardparameterwert ist0
. Standardmäßig wird also das erste Video in der Playlist geladen und abgespielt. -
Der optionale Parameter
startSeconds
kann einen Gleitkomma-/Ganzzahlwert annehmen und gibt an, ab wann das erste Video in der Playlist wiedergegeben werden soll.
-
-
Objektsyntax
Diese Funktion lädt die angegebene Liste und spielt sie ab. Die Liste kann eine Playlist oder der Feed mit den hochgeladenen Videos eines Nutzers sein. Die Möglichkeit, eine Liste mit Suchergebnissen zu laden, wird eingestellt und ab demplayer.loadPlaylist({list:String, listType:String, index:Number, startSeconds:Number}):Void
15. November 2020 nicht mehr unterstützt.-
Mit der optionalen Property
listType
wird der Typ des Ergebnisfeeds angegeben, der abgerufen wird. Gültige Werte sindplaylist
unduser_uploads
. Der eingestellte Wertsearch
wird ab dem15. November 2020 nicht mehr unterstützt. Der Standardwert istplaylist
. -
Die erforderliche Property
list
enthält einen Schlüssel, der die Liste der Videos angibt, die von YouTube zurückgegeben werden sollen.- Wenn der Wert des Attributs
listType
playlist
ist, gibt das Attributlist
eine Playlist-ID oder ein Array von Video-IDs an. In der YouTube Data API gibt das Attributid
der Ressourceplaylist
die ID einer Playlist an und das Attributid
der Ressourcevideo
die ID eines Videos. - Wenn der Wert der Property
listType
user_uploads
ist, wird mit der Propertylist
der Nutzer identifiziert, dessen hochgeladene Videos zurückgegeben werden. - Wenn der Wert der Property
listType
search
ist, wird die Suchanfrage in der Propertylist
angegeben. Hinweis:Diese Funktion wird eingestellt und ab dem15. November 2020 nicht mehr unterstützt.
- Wenn der Wert des Attributs
-
Mit der optionalen Property
index
wird der Index des ersten Videos in der Liste angegeben, das wiedergegeben werden soll. Der Parameter verwendet einen nullbasierten Index und der Standardparameterwert ist0
. Standardmäßig wird also das erste Video in der Liste geladen und abgespielt. -
Die optionale
startSeconds
-Eigenschaft akzeptiert einen Gleitkomma-/Ganzzahlwert und gibt an, wann die Wiedergabe des ersten Videos in der Liste beginnen soll.
-
-
Wiedergabesteuerung und Player-Einstellungen
Video wiedergeben
player.playVideo():Void
- Spielt das aktuell cued/geladene Video ab. Der endgültige Player-Status nach Ausführung dieser Funktion ist
playing
(1).
Hinweis:Eine Wiedergabe wird nur dann für die offizielle Aufrufzahl eines Videos gezählt, wenn sie über eine native Wiedergabeschaltfläche im Player gestartet wird.
player.pauseVideo():Void
- Pausiert das gerade wiedergegebene Video. Der endgültige Player-Status nach Ausführung dieser Funktion ist
paused
(2
), es sei denn, der Player befindet sich beim Aufruf der Funktion im Statusended
(0
). In diesem Fall ändert sich der Player-Status nicht.
player.stopVideo():Void
- Stoppt und bricht das Laden des aktuellen Videos ab. Diese Funktion ist für Ausnahmefälle gedacht, in denen du weißt, dass sich der Nutzer mit dem Player keine weiteren Videos ansehen wird. Wenn du das Video pausieren möchtest, solltest du einfach die Funktion
pauseVideo
aufrufen. Wenn du das Video ändern möchtest, das gerade im Player abgespielt wird, kannst du eine der Funktionen zur Wiedergabeliste aufrufen, ohne vorherstopVideo
aufzurufen.
Wichtig:Im Gegensatz zur FunktionpauseVideo
, die den Player im Statuspaused
(2
) belässt, kann die FunktionstopVideo
den Player in einen beliebigen Status setzen, in dem die Wiedergabe nicht aktiv ist, z. B.ended
(0
),paused
(2
),video cued
(5
) oderunstarted
(-1
).
player.seekTo(seconds:Number, allowSeekAhead:Boolean):Void
- Springt zu einer bestimmten Stelle im Video. Wenn der Player beim Aufrufen der Funktion pausiert, pausiert er weiterhin. Wenn die Funktion aus einem anderen Status (
playing
,video cued
usw.) aufgerufen wird, spielt der Player das Video ab.-
Der Parameter
seconds
gibt an, zu welcher Zeit der Spieler vorspulen soll.Der Player springt zum nächsten Keyframe vor dem angegebenen Zeitpunkt. Dies gilt nicht, wenn der Player bereits den Teil des Videos heruntergeladen hat, nach dem der Nutzer sucht.
-
Der Parameter
allowSeekAhead
bestimmt, ob der Player eine neue Anfrage an den Server sendet, wenn der Parameterseconds
eine Zeit außerhalb der aktuell im Puffer befindlichen Videodaten angibt.Wir empfehlen, diesen Parameter auf „
false
“ festzulegen, während der Nutzer die Maus über die Fortschrittsanzeige des Videos zieht, und dann auf „true
“, wenn der Nutzer die Maus loslässt. Auf diese Weise kann ein Nutzer zu verschiedenen Stellen eines Videos scrollen, ohne neue Videostreams anzufordern, indem er an nicht gepufferten Stellen des Videos vorbeiscrollt. Wenn der Nutzer die Maustaste loslässt, springt der Player an die gewünschte Stelle des Videos und fordert bei Bedarf einen neuen Videostream an.
-
Wiedergabe von 360°-Videos steuern
Hinweis:Die Wiedergabe von 360°-Videos wird auf Mobilgeräten nur eingeschränkt unterstützt. Auf nicht unterstützten Geräten werden 360°-Videos verzerrt dargestellt und es gibt keine Möglichkeit, die Wiedergabeperspektive zu ändern – weder über die API noch mithilfe von Ausrichtungssensoren oder durch Berühren/Ziehen auf dem Display des Geräts.
player.getSphericalProperties():Object
- Ruft Eigenschaften ab, die die aktuelle Perspektive oder Ansicht des Betrachters für die Videowiedergabe beschreiben. Außerdem gilt:
- Dieses Objekt wird nur für 360°-Videos (auch sphärische Videos genannt) erfasst.
- Wenn das aktuelle Video kein 360°-Video ist oder die Funktion von einem nicht unterstützten Gerät aufgerufen wird, gibt die Funktion ein leeres Objekt zurück.
- Wenn auf unterstützten Mobilgeräten die Eigenschaft
enableOrientationSensor
auftrue
festgelegt ist, gibt diese Funktion ein Objekt zurück, in dem die Eigenschaftfov
den korrekten Wert enthält und die anderen Eigenschaften auf0
festgelegt sind.
Attribute yaw
Eine Zahl im Bereich [0, 360], die den horizontalen Winkel der Ansicht in Grad angibt. Sie gibt an, inwieweit der Nutzer die Ansicht nach links oder rechts dreht. Die neutrale Position, die in der äquirectangulären Projektion auf die Mitte des Videos gerichtet ist, entspricht 0°. Dieser Wert steigt, wenn sich der Betrachter nach links dreht. pitch
Eine Zahl im Bereich [-90, 90], die den vertikalen Winkel der Ansicht in Grad angibt. Sie gibt an, inwieweit der Nutzer die Ansicht nach oben oder unten richtet. Die neutrale Position, die in der äquirectangulären Projektion auf die Mitte des Videos gerichtet ist, entspricht 0°. Dieser Wert steigt, wenn der Betrachter aufblickt. roll
Eine Zahl im Bereich [-180, 180], die den Drehwinkel der Ansicht im Uhrzeigersinn oder gegen den Uhrzeigersinn in Grad angibt. Die neutrale Position, bei der die horizontale Achse in der flächentreuen Projektion parallel zur horizontalen Achse der Ansicht ist, entspricht 0°. Der Wert steigt, wenn sich die Ansicht im Uhrzeigersinn dreht, und sinkt, wenn sich die Ansicht gegen den Uhrzeigersinn dreht.
Der eingebettete Player bietet keine Benutzeroberfläche zum Anpassen der Drehung der Ansicht. Die Rollung kann auf zwei sich gegenseitig ausschließende Arten angepasst werden:- Verwenden Sie den Ausrichtungssensor in einem mobilen Browser, um die Ansicht zu neigen. Wenn der Orientierungssensor aktiviert ist, gibt die Funktion
getSphericalProperties
immer0
als Wert der Eigenschaftroll
zurück. - Wenn der Ausrichtungssensor deaktiviert ist, setzen Sie die Rollung mit dieser API auf einen Wert ungleich 0.
fov
Eine Zahl im Bereich [30, 120], die den Sichtbereich der Ansicht in Grad entlang der längeren Kante des Darstellungsbereichs darstellt. Die kürzere Seite wird automatisch so angepasst, dass sie proportional zum Seitenverhältnis der Ansicht ist.
Der Standardwert ist 100 Grad. Wenn Sie den Wert verringern, ist das so, als würden Sie in den Videocontent hineinzoomen. Wenn Sie den Wert erhöhen, ist das so, als würden Sie herauszoomen. Dieser Wert kann entweder über die API oder mit dem Mausrad angepasst werden, wenn sich das Video im Vollbildmodus befindet.
player.setSphericalProperties(properties:Object):Void
- Legt die Videoausrichtung für die Wiedergabe eines 360°-Videos fest. Wenn das aktuelle Video nicht sphärisch ist, wird die Methode unabhängig von der Eingabe nicht ausgeführt.
Die Wiedergabeansicht reagiert auf Aufrufe dieser Methode, indem sie aktualisiert wird, um die Werte aller bekannten Eigenschaften improperties
-Objekt widerzuspiegeln. In der Ansicht werden Werte für alle anderen bekannten Properties gespeichert, die nicht in diesem Objekt enthalten sind.
Zusätzlich gilt:- Wenn das Objekt unbekannte und/oder unerwartete Eigenschaften enthält, werden diese vom Player ignoriert.
- Wie bereits zu Beginn dieses Abschnitts erwähnt, wird die Wiedergabe von 360°-Videos nicht auf allen Mobilgeräten unterstützt.
- Auf unterstützten Mobilgeräten wird mit dieser Funktion standardmäßig nur die Property
fov
festgelegt. Die Propertiesyaw
,pitch
undroll
für die Wiedergabe von 360°-Videos sind davon nicht betroffen. Weitere Informationen finden Sie unten im Abschnitt zum AttributenableOrientationSensor
.
properties
-Objekt enthält die folgenden Eigenschaften:Attribute yaw
Siehe Definition oben. pitch
Siehe Definition oben. roll
Siehe Definition oben. fov
Siehe Definition oben. enableOrientationSensor
Hinweis:Diese Eigenschaft wirkt sich nur auf die 360°-Wiedergabe auf unterstützten Geräten aus. Ein boolescher Wert, der angibt, ob das IFrame-Embed auf Ereignisse reagieren soll, die Änderungen an der Ausrichtung eines unterstützten Geräts signalisieren, z. B. die DeviceOrientationEvent
eines mobilen Browsers. Der Standardparameterwert isttrue
.
Unterstützte Mobilgeräte- Wenn der Wert
true
ist, berücksichtigt ein eingebetteter Player bei der Anpassung der Propertiesyaw
,pitch
undroll
für die 360°-Videowiedergabe nur die Bewegung des Geräts. Das Attributfov
kann jedoch weiterhin über die API geändert werden. Die API ist in der Tat die einzige Möglichkeit, das Attributfov
auf einem Mobilgerät zu ändern. Das ist das Standardverhalten. - Wenn der Wert
false
ist, hat die Bewegung des Geräts keine Auswirkungen auf die 360°-Ansicht. Die Eigenschaftenyaw
,pitch
,roll
undfov
müssen dann alle über die API festgelegt werden.
Nicht unterstützte Mobilgeräte
Der Wert der PropertyenableOrientationSensor
hat keinen Einfluss auf die Wiedergabe.
Video in einer Playlist wiedergeben
player.nextVideo():Void
- Mit dieser Funktion wird das nächste Video in der Playlist geladen und abgespielt.
-
Wenn
player.nextVideo()
aufgerufen wird, während das letzte Video in der Playlist angesehen wird und die Playlist auf „Kontinuierliche Wiedergabe“ (loop
) eingestellt ist, lädt der Player das erste Video in der Liste und spielt es ab. -
Wenn
player.nextVideo()
aufgerufen wird, während das letzte Video in der Playlist angesehen wird und die Playlist nicht so eingestellt ist, dass sie fortlaufend wiedergegeben wird, wird die Wiedergabe beendet.
-
player.previousVideo():Void
- Mit dieser Funktion wird das vorherige Video in der Playlist geladen und abgespielt.
-
Wenn
player.previousVideo()
aufgerufen wird, während das erste Video in der Playlist angesehen wird, und die Playlist auf „Kontinuierliche Wiedergabe“ (loop
) eingestellt ist, lädt der Player das letzte Video in der Liste und spielt es ab. -
Wenn
player.previousVideo()
aufgerufen wird, während das erste Video in der Playlist angesehen wird, und die Playlist nicht auf „Ununterbrochen wiedergeben“ eingestellt ist, startet der Player das erste Playlist-Video von vorn.
-
player.playVideoAt(index:Number):Void
- Mit dieser Funktion wird das angegebene Video in der Playlist geladen und abgespielt.
-
Mit dem erforderlichen Parameter
index
wird der Index des Videos angegeben, das in der Playlist wiedergegeben werden soll. Der Parameter verwendet einen nullbasierten Index. Der Wert0
gibt also das erste Video in der Liste an. Wenn du die Playlist zufällig abgemischt hast, wird mit dieser Funktion das Video an der angegebenen Position in der Playlist abgespielt.
-
Player-Lautstärke ändern
player.mute():Void
- Stummschaltet den Player.
player.unMute():Void
- Die Stummschaltung des Players wird aufgehoben.
player.isMuted():Boolean
- Gibt
true
zurück, wenn der Player stummgeschaltet ist, andernfallsfalse
.
player.setVolume(volume:Number):Void
- Lautstärke einstellen Akzeptiert Ganzzahlen zwischen
0
und100
.
player.getVolume():Number
- Gibt die aktuelle Lautstärke des Players als Ganzzahl zwischen
0
und100
zurück. Beachte, dassgetVolume()
die Lautstärke zurückgibt, auch wenn der Player stummgeschaltet ist.
Player-Größe festlegen
player.setSize(width:Number, height:Number):Object
- Legt die Größe in Pixeln des
<iframe>
fest, das den Player enthält.
Wiedergaberate festlegen
player.getPlaybackRate():Number
- Mit dieser Funktion wird die Wiedergabegeschwindigkeit des aktuell wiedergegebenen Videos abgerufen. Die Standardwiedergabegeschwindigkeit ist
1
, was bedeutet, dass das Video mit normaler Geschwindigkeit abgespielt wird. Zulässige Werte für die Wiedergabegeschwindigkeit sind0.25
,0.5
,1
,1.5
und2
.
player.setPlaybackRate(suggestedRate:Number):Void
- Mit dieser Funktion wird die vorgeschlagene Wiedergabegeschwindigkeit für das aktuelle Video festgelegt. Wenn sich die Wiedergaberate ändert, ändert sie sich nur für das Video, das bereits positioniert ist oder wiedergegeben wird. Wenn du die Wiedergabegeschwindigkeit für ein Video mit Cue festlegst, ist diese Geschwindigkeit weiterhin aktiv, wenn die Funktion
playVideo
aufgerufen wird oder der Nutzer die Wiedergabe direkt über die Playersteuerung startet. Außerdem wird die Wiedergabegeschwindigkeit auf1
zurückgesetzt, wenn Funktionen zum Abspielen oder Laden von Videos oder Playlists (cueVideoById
,loadVideoById
usw.) aufgerufen werden.
Durch den Aufruf dieser Funktion wird nicht garantiert, dass sich die Wiedergabegeschwindigkeit tatsächlich ändert. Wenn sich die Wiedergabegeschwindigkeit jedoch ändert, wird das EreignisonPlaybackRateChange
ausgelöst. Dein Code sollte auf das Ereignis reagieren und nicht darauf, dass diesetPlaybackRate
-Funktion aufgerufen wurde.
Die MethodegetAvailablePlaybackRates
gibt die möglichen Wiedergaberaten für das aktuell wiedergegebene Video zurück. Wenn du den ParametersuggestedRate
jedoch auf einen nicht unterstützten Ganzzahl- oder Gleitkommawert festlegst, wird der Wert vom Player auf den nächsten unterstützten Wert in Richtung1
abgerundet.
player.getAvailablePlaybackRates():Array
- Diese Funktion gibt die Wiedergaberaten zurück, in denen das aktuelle Video verfügbar ist. Der Standardwert ist
1
, was bedeutet, dass das Video mit normaler Geschwindigkeit abgespielt wird.
Die Funktion gibt ein Array mit Zahlen zurück, die von der langsamsten bis zur schnellsten Wiedergabegeschwindigkeit sortiert sind. Auch wenn der Player keine variablen Wiedergabegeschwindigkeiten unterstützt, sollte das Array immer mindestens einen Wert (1
) enthalten.
Wiedergabeverhalten für Playlists festlegen
player.setLoop(loopPlaylists:Boolean):Void
-
Diese Funktion zeigt an, ob der Videoplayer eine Playlist fortlaufend wiedergeben oder die Wiedergabe nach dem letzten Video der Playlist beenden soll. Playlists werden standardmäßig nicht als Schleifen gespielt.
Diese Einstellung bleibt auch dann erhalten, wenn du eine andere Playlist lädst oder anspielst. Wenn du also eine Playlist lädst, die
setLoop
-Funktion mit dem Werttrue
aufrufst und dann eine zweite Playlist lädst, wird auch die zweite Playlist in einer Schleife abgespielt.Der erforderliche Parameter
loopPlaylists
gibt das Looping-Verhalten an.-
Wenn der Parameterwert
true
ist, spielt der Videoplayer Playlists kontinuierlich ab. Nach der Wiedergabe des letzten Videos einer Playlist setzt der Videoplayer die Wiedergabe mit dem ersten Video der Playlist fort. -
Wenn der Parameterwert
false
ist, endet die Wiedergabe, nachdem der Videoplayer das letzte Video in einer Playlist abgespielt hat.
-
player.setShuffle(shufflePlaylist:Boolean):Void
-
Diese Funktion zeigt an, ob die Videos einer Playlist als Zufallsmix wiedergegeben werden sollen, sodass sie in einer anderen Reihenfolge als der vom Playlist-Ersteller vorgesehenen wiedergegeben werden. Wenn du eine Playlist als Zufallsmix wiedergeben möchtest, nachdem die Wiedergabe bereits gestartet wurde, wird die Reihenfolge der Liste geändert, während die Wiedergabe des aktuellen Videos fortgesetzt wird. Das nächste Video wird dann gemäß der neuen Liste ausgewählt.
Diese Einstellung wird nicht beibehalten, wenn du eine andere Playlist lädst oder abspielst. Wenn du also eine Playlist lädst, die
setShuffle
-Funktion aufrufst und dann eine zweite Playlist lädst, wird die zweite Playlist nicht zufällig abgespielt.Der erforderliche Parameter
shufflePlaylist
gibt an, ob YouTube die Playlist im Zufallsmix abspielen soll.-
Wenn der Parameterwert
true
ist, wird die Playlist-Reihenfolge von YouTube zufällig festgelegt. Wenn du die Funktion anweist, eine bereits nach dem Zufallsprinzip gemischte Playlist erneut nach dem Zufallsprinzip zu mischen, erstellt YouTube eine neue Reihenfolge nach dem Zufallsprinzip. -
Wenn der Parameterwert
false
ist, ändert YouTube die Playlistreihenfolge wieder in die ursprüngliche Reihenfolge zurück.
-
Wiedergabestatu
player.getVideoLoadedFraction():Float
- Gibt eine Zahl zwischen
0
und1
zurück, die den Prozentsatz des Videos angibt, der im Player als gepuffert angezeigt wird. Diese Methode liefert eine zuverlässigere Zahl als die inzwischen eingestellten MethodengetVideoBytesLoaded
undgetVideoBytesTotal
.
player.getPlayerState():Number
- Gibt den Status des Players zurück. Mögliche Werte sind:
-1
– nicht gestartet0
– beendet1
– wird wiedergegeben2
– pausiert3
– wird gepuffert5
– Video positioniert
player.getCurrentTime():Number
- Gibt die verstrichene Zeit in Sekunden seit Beginn der Videowiedergabe zurück.
player.getVideoStartBytes():Number
- Seit dem 31. Oktober 2012 eingestellt. Gibt die Anzahl der Bytes zurück, die die Videodatei bereits geladen hat. (Diese Methode gibt jetzt immer den Wert
0
zurück.) Beispielszenario: Der Nutzer springt zu einem Punkt, der noch nicht geladen wurde, und der Player sendet eine neue Anfrage, um ein Segment des Videos abzuspielen, das noch nicht geladen wurde.
player.getVideoBytesLoaded():Number
-
Seit dem 18. Juli 2012 eingestellt. Verwenden Sie stattdessen die Methode
getVideoLoadedFraction
, um den Prozentsatz des Videos zu ermitteln, der zwischengespeichert wurde.
Diese Methode gibt einen Wert zwischen0
und1000
zurück, der ungefähr dem Prozentsatz des geladenen Videos entspricht. Du kannst den geladenen Anteil des Videos berechnen, indem du den WertgetVideoBytesLoaded
durch den WertgetVideoBytesTotal
teilst.
player.getVideoBytesTotal():Number
-
Seit dem 18. Juli 2012 eingestellt. Verwenden Sie stattdessen die Methode
getVideoLoadedFraction
, um den Prozentsatz des Videos zu ermitteln, der zwischengespeichert wurde.
Gibt die Größe in Byte des aktuell geladenen/abgespielten Videos oder eine Schätzung der Größe des Videos zurück.
Diese Methode gibt immer den Wert1000
zurück. Du kannst den geladenen Anteil des Videos berechnen, indem du den WertgetVideoBytesLoaded
durch den WertgetVideoBytesTotal
teilst.
Videoinformationen abrufen
player.getDuration():Number
- Gibt die Dauer des gerade wiedergegebenen Videos in Sekunden zurück. Hinweis: Für
getDuration()
wird0
zurückgegeben, bis die Metadaten des Videos geladen sind. Das geschieht normalerweise kurz nach Beginn der Wiedergabe.
Wenn das aktuell wiedergegebene Video ein Liveereignis ist, gibt die FunktiongetDuration()
die verstrichene Zeit seit Beginn des Livestreams zurück. Genau genommen handelt es sich hierbei um die Zeit, die das Video gestreamt wurde, ohne zurückgesetzt oder unterbrochen zu werden. Außerdem ist diese Zeit in der Regel länger als die tatsächliche Veranstaltung, da das Streaming bereits vor dem Start der Veranstaltung beginnen kann.
player.getVideoUrl():String
- Die YouTube.com-URL für das aktuell geladene/abgespielte Video.
player.getVideoEmbedCode():String
- Gibt den Einbettungscode für das aktuell geladene/abgespielte Video zurück.
Playlist-Informationen abrufen
player.getPlaylist():Array
- Diese Funktion gibt ein Array der Video-IDs in der Playlist in der aktuellen Reihenfolge zurück. Standardmäßig gibt diese Funktion Video-IDs in der Reihenfolge zurück, die vom Playlist-Eigentümer festgelegt wurde. Wenn du jedoch die Funktion
setShuffle
aufgerufen hast, um die Reihenfolge der Playlist zufällig zu ändern, entspricht der Rückgabewert der FunktiongetPlaylist()
der Reihenfolge nach Zufallsmix.
player.getPlaylistIndex():Number
- Diese Funktion gibt den Index des aktuell wiedergegebenen Playlist-Videos zurück.
-
Wenn du die Playlist nicht als Zufallsmix wiedergibst, gibt der Rückgabewert die Position an, an der der Ersteller der Playlist das Video platziert hat. Der Rückgabewert verwendet einen nullbasierten Index, sodass das erste Video in der Playlist durch den Wert
0
identifiziert wird. -
Wenn du die Playlist als Zufallsmix wiedergibst, gibt der Rückgabewert die Position des Videos innerhalb der Playlist an, die als Zufallsmix wiedergegeben wird.
-
Ereignis-Listener hinzufügen oder entfernen
player.addEventListener(event:String, listener:String):Void
- Fügt eine Listenerfunktion für die angegebene
event
hinzu. Im Abschnitt Ereignisse unten werden die verschiedenen Ereignisse aufgeführt, die der Spieler auslösen kann. Beim Listener handelt es sich um einen String, der die Funktion festlegt, die bei Auslösung des angegebenen Ereignisses ausgeführt wird.
player.removeEventListener(event:String, listener:String):Void
- Entfernt eine Listenerfunktion für den angegebenen
event
.listener
ist ein String, der die Funktion angibt, die nicht mehr ausgeführt wird, wenn das angegebene Ereignis ausgelöst wird.
DOM-Knoten aufrufen und ändern
player.getIframe():Object
- Diese Methode gibt den DOM-Knoten für die eingebettete
<iframe>
zurück.
player.destroy():Void
- Entfernt den
<iframe>
, der den Spieler enthält.
Ereignisse
Die API löst Ereignisse aus, um deine Anwendung über Änderungen am eingebetteten Player zu informieren. Wie im vorherigen Abschnitt erwähnt, können Sie Ereignisse abonnieren, indem Sie beim Erstellen des YT.Player
-Objekts einen Ereignis-Listener hinzufügen. Sie können auch die Funktion addEventListener
verwenden.
Die API leitet ein Ereignisobjekt als einzelnes Argument an die jeweiligen Funktionen weiter. Das Ereignisobjekt weist die folgenden Eigenschaften auf:
- Die
target
des Ereignisses gibt den Videoplayer an, der dem Ereignis entspricht. - Mit dem
data
des Ereignisses wird ein für das Ereignis relevanter Wert angegeben. Für die EreignisseonReady
undonAutoplayBlocked
wird keindata
-Attribut angegeben.
In der folgenden Liste werden die Ereignisse definiert, die von der API ausgelöst werden:
onReady
- Dieses Ereignis wird ausgelöst, wenn ein Player fertig geladen ist und bereit ist, API-Aufrufe zu empfangen. Diese Funktion sollte in Ihrer Anwendung implementiert sein, wenn Sie bestimmte Vorgänge automatisch ausführen möchten, z. B. das Abspielen des Videos oder das Anzeigen von Informationen zum Video, sobald der Player bereit ist.
Das Beispiel unten zeigt eine Beispielfunktion für die Verarbeitung dieses Ereignisses. Das Ereignisobjekt, das die API an die Funktion weitergibt, hat die Propertytarget
, mit der der Player identifiziert wird. Die Funktion ruft den Einbettungscode für das aktuell geladene Video ab, startet die Wiedergabe des Videos und zeigt den Einbettungscode im Seitenelement an, das denid
-Wertembed-code
hat.function onPlayerReady(event) { var embedCode = event.target.getVideoEmbedCode(); event.target.playVideo(); if (document.getElementById('embed-code')) { document.getElementById('embed-code').innerHTML = embedCode; } }
onStateChange
- Dieses Ereignis wird ausgelöst, wenn sich der Status des Spielers ändert.
Die Eigenschaft
data
des Ereignisobjekts, das die API an deine Ereignis-Listener-Funktion weitergibt, gibt eine Ganzzahl an, die dem neuen Spielerstatus entspricht. Folgende Werte sind möglich:-1
(nicht gestartet)0
(beendet)1
(wird wiedergegeben)2
(pausiert)3
(wird gepuffert)5
(Video positioniert)
unstarted
(-1
) gesendet. Wenn ein Video an der richtigen Stelle pausiert ist und abgespielt werden kann, sendet der Player das Ereignisvideo cued
(5
). In deinem Code kannst du ganze Zahlen als Werte angeben oder eine der folgenden Namespace-Variablen verwenden:YT.PlayerState.ENDED
YT.PlayerState.PLAYING
YT.PlayerState.PAUSED
YT.PlayerState.BUFFERING
YT.PlayerState.CUED
onPlaybackQualityChange
- Dieses Ereignis wird ausgelöst, wenn sich die Videowiedergabequalität ändert. Dies kann auf eine Änderung der Wiedergabeumgebung des Betrachters hinweisen. Weitere Informationen zu Faktoren, die sich auf die Wiedergabebedingungen auswirken oder das Ereignis auslösen können, findest du in der YouTube-Hilfe.
Der Attributwertdata
des Ereignisobjekts, das die API an die Ereignis-Listener-Funktion weitergibt, ist ein String, der die neue Wiedergabequalität angibt. Folgende Werte sind möglich:small
medium
large
hd720
hd1080
highres
onPlaybackRateChange
- Dieses Ereignis wird ausgelöst, wenn sich die Wiedergabegeschwindigkeit des Videos ändert. Wenn du beispielsweise die Funktion
setPlaybackRate(suggestedRate)
aufrufst, wird dieses Ereignis ausgelöst, wenn sich die Wiedergabegeschwindigkeit tatsächlich ändert. Deine Anwendung sollte auf das Ereignis reagieren und nicht davon ausgehen, dass sich die Wiedergabegeschwindigkeit automatisch ändert, wenn die FunktionsetPlaybackRate(suggestedRate)
aufgerufen wird. Ebenso sollte in deinem Code nicht davon ausgegangen werden, dass sich die Wiedergabegeschwindigkeit des Videos nur durch einen expliziten Aufruf vonsetPlaybackRate
ändert.
Der Wert der Eigenschaftdata
des Ereignisobjekts, das die API an die Ereignis-Listener-Funktion übergibt, ist eine Zahl, die die neue Wiedergabegeschwindigkeit angibt. DiegetAvailablePlaybackRates
-Methode gibt eine Liste der gültigen Wiedergaberaten für das derzeit cued oder wiedergegebene Video zurück.
onError
- Dieses Ereignis wird ausgelöst, wenn im Player ein Fehler auftritt.
Die API übergibt der Funktion „event listener“ ein
event
-Objekt. Diedata
-Eigenschaft dieses Objekts gibt eine Ganzzahl an, die den aufgetretenen Fehlertyp identifiziert. Folgende Werte sind möglich:2
– Die Anfrage enthält einen ungültigen Parameterwert. Dieser Fehler tritt beispielsweise auf, wenn du eine Video-ID angibst, die nicht aus elf Zeichen besteht, oder wenn die Video-ID ungültige Zeichen wie z. B. Ausrufezeichen oder Sternchen enthält.5
– Der angeforderte Inhalt kann nicht mit einem HTML5-Player wiedergegeben werden oder es ist ein anderer Fehler im Zusammenhang mit dem HTML5-Player aufgetreten.100
– Der angeforderte Video wurde nicht gefunden. Dieser Fehler tritt auf, wenn ein Video aus irgendeinem Grund entfernt oder als privat markiert wurde.101
– Der Rechteinhaber des angeforderten Videos untersagt die Wiedergabe des Videos in eingebetteten Playern.150
– Dieser Fehler ist mit101
identisch. Es ist nur ein getarnter101
-Fehler.
onApiChange
- Dieses Ereignis wird ausgelöst, um anzugeben, dass der Player ein Modul mit freigegebenen API-Methoden geladen (oder entladen) hat. Deine Anwendung kann dieses Ereignis erkennen und anschließend den Player abfragen, um festzustellen, welche Optionen für das kürzlich geladene Modul zur Verfügung stehen. Danach kann deine Anwendung die für diese Optionen vorhandenen Einstellungen abrufen oder aktualisieren.
Mit dem folgenden Befehl wird ein Array mit Modulnamen abgerufen, für die du Playeroptionen festlegen kannst:
Derzeit kannst du nur Optionen für dasplayer.getOptions();
captions
-Modul festlegen, das Untertitel im Player verarbeitet. Wenn deine Anwendung einonApiChange
-Ereignis empfängt, kann sie mit dem folgenden Befehl ermitteln, welche Optionen für dascaptions
-Modul festgelegt werden können:
Wenn du den Player mit diesem Befehl abfragst, kannst du prüfen, ob du auf die gewünschten Optionen zugreifen kannst. Mit den folgenden Befehlen können Sie Moduloptionen abrufen und aktualisieren:player.getOptions('captions');
In der folgenden Tabelle sind die von der API unterstützten Optionen aufgeführt:Retrieving an option: player.getOption(module, option); Setting an option player.setOption(module, option, value);
Modul Option Beschreibung captions fontSize Mit dieser Option wird die Schriftgröße der Untertitel angepasst, die im Player angezeigt werden.
Gültige Werte sind-1
,0
,1
,2
und3
. Die Standardgröße ist0
und die kleinste Größe ist-1
. Wenn du diese Option auf eine Ganzzahl unter-1
festlegst, wird die kleinste Untertitelgröße angezeigt. Wenn du sie auf eine Ganzzahl über3
festlegst, wird die größte Untertitelgröße angezeigt.captions Neu laden Diese Option lädt die Untertiteldaten für das wiedergegebene Video erneut. Wenn Sie den Wert der Option abrufen, wird null
zurückgegeben. Lege den Wert auftrue
fest, um die Untertiteldaten neu zu laden.
onAutoplayBlocked
- Dieses Ereignis wird jedes Mal ausgelöst, wenn der Browser die automatische Wiedergabe oder die Wiedergabe von Videos mit Script blockiert, was zusammen als „automatische Wiedergabe“ bezeichnet wird. Dazu gehört auch die Wiedergabe, die mit einer der folgenden Player-APIs versucht wird:
autoplay
-ParameterloadPlaylist
-FunktionloadVideoById
-FunktionloadVideoByUrl
-FunktionplayVideo
-Funktion
Weitere Informationen finden Sie in den browserspezifischen Richtlinien (Apple Safari / Webkit, Google Chrome, Mozilla Firefox) und im Autoplay-Leitfaden von Mozilla.
Beispiele
YT.Player
-Objekte erstellen
-
Beispiel 1: API mit vorhandenem <iframe> verwenden
In diesem Beispiel wird der Player, mit dem die API verwendet wird, bereits in einem
<iframe>
-Element auf der Seite definiert. Beachte, dass entweder der Parameterenablejsapi
in dersrc
-URL des Players auf1
gesetzt sein muss oder das Attributenablejsapi
des Elements<iframe>
auftrue
.Mit der Funktion
onPlayerReady
wird die Farbe des Rahmens um den Spieler herum in Orange geändert, wenn er bereit ist. Die FunktiononPlayerStateChange
ändert dann die Farbe des Rahmens um den Spieler herum basierend auf dem aktuellen Spielerstatus. Die Farbe ist beispielsweise grün, wenn der Player wiedergegeben wird, rot, wenn er pausiert ist, blau, wenn er puffert, usw.In diesem Beispiel wird der folgende Code verwendet:
<iframe id="existing-iframe-example" width="640" height="360" src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1" frameborder="0" style="border: solid 4px #37474F" ></iframe> <script type="text/javascript"> var tag = document.createElement('script'); tag.id = 'iframe-demo'; tag.src = 'https://www.youtube.com/iframe_api'; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubeIframeAPIReady() { player = new YT.Player('existing-iframe-example', { events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } function onPlayerReady(event) { document.getElementById('existing-iframe-example').style.borderColor = '#FF6D00'; } function changeBorderColor(playerStatus) { var color; if (playerStatus == -1) { color = "#37474F"; // unstarted = gray } else if (playerStatus == 0) { color = "#FFFF00"; // ended = yellow } else if (playerStatus == 1) { color = "#33691E"; // playing = green } else if (playerStatus == 2) { color = "#DD2C00"; // paused = red } else if (playerStatus == 3) { color = "#AA00FF"; // buffering = purple } else if (playerStatus == 5) { color = "#FF6DOO"; // video cued = orange } if (color) { document.getElementById('existing-iframe-example').style.borderColor = color; } } function onPlayerStateChange(event) { changeBorderColor(event.data); } </script>
-
Beispiel 2: Laute Wiedergabe
In diesem Beispiel wird ein Videoplayer mit einer Größe von 1280 x 720 Pixel erstellt. Der Ereignis-Listener für das Ereignis
onReady
ruft dann die FunktionsetVolume
auf, um die Lautstärke auf die höchste Einstellung zu stellen.function onYouTubeIframeAPIReady() { var player; player = new YT.Player('player', { width: 1280, height: 720, videoId: 'M7lc1UVf-VE', events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange, 'onError': onPlayerError } }); } function onPlayerReady(event) { event.target.setVolume(100); event.target.playVideo(); }
-
Beispiel 3 : In diesem Beispiel werden die Playerparameter so festgelegt, dass das Video beim Laden automatisch wiedergegeben und die Steuerelemente des Videoplayers ausgeblendet werden. Außerdem werden Ereignis-Listener für mehrere Ereignisse hinzugefügt, die von der API gesendet werden.
function onYouTubeIframeAPIReady() { var player; player = new YT.Player('player', { videoId: 'M7lc1UVf-VE', playerVars: { 'autoplay': 1, 'controls': 0 }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange, 'onError': onPlayerError } }); }
360°-Videos steuern
In diesem Beispiel wird der folgende Code verwendet:
<style> .current-values { color: #666; font-size: 12px; } </style> <!-- The player is inserted in the following div element --> <div id="spherical-video-player"></div> <!-- Display spherical property values and enable user to update them. --> <table style="border: 0; width: 640px;"> <tr style="background: #fff;"> <td> <label for="yaw-property">yaw: </label> <input type="text" id="yaw-property" style="width: 80px"><br> <div id="yaw-current-value" class="current-values"> </div> </td> <td> <label for="pitch-property">pitch: </label> <input type="text" id="pitch-property" style="width: 80px"><br> <div id="pitch-current-value" class="current-values"> </div> </td> <td> <label for="roll-property">roll: </label> <input type="text" id="roll-property" style="width: 80px"><br> <div id="roll-current-value" class="current-values"> </div> </td> <td> <label for="fov-property">fov: </label> <input type="text" id="fov-property" style="width: 80px"><br> <div id="fov-current-value" class="current-values"> </div> </td> <td style="vertical-align: bottom;"> <button id="spherical-properties-button">Update properties</button> </td> </tr> </table> <script type="text/javascript"> var tag = document.createElement('script'); tag.id = 'iframe-demo'; tag.src = 'https://www.youtube.com/iframe_api'; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var PROPERTIES = ['yaw', 'pitch', 'roll', 'fov']; var updateButton = document.getElementById('spherical-properties-button'); // Create the YouTube Player. var ytplayer; function onYouTubeIframeAPIReady() { ytplayer = new YT.Player('spherical-video-player', { height: '360', width: '640', videoId: 'FAtdv94yzp4', }); } // Don't display current spherical settings because there aren't any. function hideCurrentSettings() { for (var p = 0; p < PROPERTIES.length; p++) { document.getElementById(PROPERTIES[p] + '-current-value').innerHTML = ''; } } // Retrieve current spherical property values from the API and display them. function updateSetting() { if (!ytplayer || !ytplayer.getSphericalProperties) { hideCurrentSettings(); } else { let newSettings = ytplayer.getSphericalProperties(); if (Object.keys(newSettings).length === 0) { hideCurrentSettings(); } else { for (var p = 0; p < PROPERTIES.length; p++) { if (newSettings.hasOwnProperty(PROPERTIES[p])) { currentValueNode = document.getElementById(PROPERTIES[p] + '-current-value'); currentValueNode.innerHTML = ('current: ' + newSettings[PROPERTIES[p]].toFixed(4)); } } } } requestAnimationFrame(updateSetting); } updateSetting(); // Call the API to update spherical property values. updateButton.onclick = function() { var sphericalProperties = {}; for (var p = 0; p < PROPERTIES.length; p++) { var propertyInput = document.getElementById(PROPERTIES[p] + '-property'); sphericalProperties[PROPERTIES[p]] = parseFloat(propertyInput.value); } ytplayer.setSphericalProperties(sphericalProperties); } </script>
Einbindung der Media Integrity API in Android WebView
YouTube hat die Android WebView Media Integrity API erweitert, damit eingebettete Mediaplayer, einschließlich eingebetteter YouTube-Player in Android-Anwendungen, die Authentizität der einbettenden App überprüfen können. Durch diese Änderung senden eingebettete Apps automatisch eine bestätigte App-ID an YouTube. Die Daten, die über diese API erhoben werden, sind die App-Metadaten (Paketname, Versionsnummer und Signaturzertifikat) und ein Geräteattestierungstoken, das von Google Play-Diensten generiert wird.
Die Daten werden verwendet, um die Integrität der Anwendung und des Geräts zu prüfen. Die Daten werden verschlüsselt, nicht an Dritte weitergegeben und nach einer festgelegten Aufbewahrungsdauer gelöscht. App-Entwickler können ihre App-Identität in der WebView Media Integrity API konfigurieren. Die Konfiguration unterstützt eine Opt-out-Option.
Überarbeitungsverlauf
June 24, 2024
The documentation has been updated to note that YouTube has extended the Android WebView Media Integrity API to enable embedded media players, including YouTube player embeds in Android applications, to verify the embedding app's authenticity. With this change, embedding apps automatically send an attested app ID to YouTube.
November 20, 2023
The new onAutoplayBlocked
event API is now available.
This event notifies your application if the browser blocks autoplay or scripted playback.
Verification of autoplay success or failure is an
established paradigm
for HTMLMediaElements, and the onAutoplayBlocked
event now provides similar
functionality for the IFrame Player API.
April 27, 2021
The Getting Started and Loading a Video Player sections have been updated to include examples of using a playerVars
object to customize the player.
October 13, 2020
Note: This is a deprecation announcement for the embedded player
functionality that lets you configure the player to load search results. This announcement affects
the IFrame Player API's queueing functions for lists,
cuePlaylist
and
loadPlaylist
.
This change will become effective on or after cuePlaylist
or loadPlaylist
functions that set the listType
property to search
will generate a 4xx
response code, such as
404
(Not Found
) or 410
(Gone
). This change
also affects the list
property for those functions as that property no longer
supports the ability to specify a search query.
As an alternative, you can use the YouTube Data API's
search.list
method to retrieve search
results and then load selected videos in the player.
October 24, 2019
The documentation has been updated to reflect the fact that the API no longer supports functions for setting or retrieving playback quality. As explained in this YouTube Help Center article, to give you the best viewing experience, YouTube adjusts the quality of your video stream based on your viewing conditions.
The changes explained below have been in effect for more than one year. This update merely aligns the documentation with current functionality:
- The
getPlaybackQuality
,setPlaybackQuality
, andgetAvailableQualityLevels
functions are no longer supported. In particular, calls tosetPlaybackQuality
will be no-op functions, meaning they will not actually have any impact on the viewer's playback experience. - The queueing functions for videos and playlists --
cueVideoById
,loadVideoById
, etc. -- no longer support thesuggestedQuality
argument. Similarly, if you call those functions using object syntax, thesuggestedQuality
field is no longer supported. IfsuggestedQuality
is specified, it will be ignored when the request is handled. It will not generate any warnings or errors. - The
onPlaybackQualityChange
event is still supported and might signal a change in the viewer's playback environment. See the Help Center article referenced above for more information about factors that affect playback conditions or that might cause the event to fire.
May 16, 2018
The API now supports features that allow users (or embedders) to control the viewing perspective for 360° videos:
- The
getSphericalProperties
function retrieves the current orientation for the video playback. The orientation includes the following data:- yaw - represents the horizontal angle of the view in degrees, which reflects the extent to which the user turns the view to face further left or right
- pitch - represents the vertical angle of the view in degrees, which reflects the extent to which the user adjusts the view to look up or down
- roll - represents the rotational angle (clockwise or counterclockwise) of the view in degrees.
- fov - represents the field-of-view of the view in degrees, which reflects the extent to which the user zooms in or out on the video.
- The
setSphericalProperties
function modifies the view to match the submitted property values. In addition to the orientation values described above, this function supports a Boolean field that indicates whether the IFrame embed should respond toDeviceOrientationEvents
on supported mobile devices.
This example demonstrates and lets you test these new features.
June 19, 2017
This update contains the following changes:
-
Documentation for the YouTube Flash Player API and YouTube JavaScript Player API has been removed and redirected to this document. The deprecation announcement for the Flash and JavaScript players was made on January 27, 2015. If you haven't done so already, please migrate your applications to use IFrame embeds and the IFrame Player API.
August 11, 2016
This update contains the following changes:
-
The newly published YouTube API Services Terms of Service ("the Updated Terms"), discussed in detail on the YouTube Engineering and Developers Blog, provides a rich set of updates to the current Terms of Service. In addition to the Updated Terms, which will go into effect as of February 10, 2017, this update includes several supporting documents to help explain the policies that developers must follow.
The full set of new documents is described in the revision history for the Updated Terms. In addition, future changes to the Updated Terms or to those supporting documents will also be explained in that revision history. You can subscribe to an RSS feed listing changes in that revision history from a link in that document.
June 29, 2016
This update contains the following changes:
-
The documentation has been corrected to note that the
onApiChange
method provides access to thecaptions
module and not thecc
module.
June 24, 2016
The Examples section has been updated to include an example that demonstrates how to use the API with an existing <iframe>
element.
January 6, 2016
The clearVideo
function has been deprecated and removed from the documentation. The function no longer has any effect in the YouTube player.
December 18, 2015
European Union (EU) laws require that certain disclosures must be given to and consents obtained from end users in the EU. Therefore, for end users in the European Union, you must comply with the EU User Consent Policy. We have added a notice of this requirement in our YouTube API Terms of Service.
April 28, 2014
This update contains the following changes:
-
The new removeEventListener function lets you remove a listener for a specified event.
March 25, 2014
This update contains the following changes:
-
The Requirements section has been updated to note that embedded players must have a viewport that is at least 200px by 200px. If a player displays controls, it must be large enough to fully display the controls without shrinking the viewport below the minimum size. We recommend 16:9 players be at least 480 pixels wide and 270 pixels tall.
July 23, 2013
This update contains the following changes:
-
The Overview now includes a video of a 2011 Google I/O presentation that discusses the iframe player.
October 31, 2012
This update contains the following changes:
-
The Queueing functions section has been updated to explain that you can use either argument syntax or object syntax to call all of those functions. Note that the API may support additional functionality in object syntax that the argument syntax does not support.
In addition, the descriptions and examples for each of the video queueing functions have been updated to reflect the newly added support for object syntax. (The API's playlist queueing functions already supported object syntax.)
-
When called using object syntax, each of the video queueing functions supports an
endSeconds
property, which accepts a float/integer and specifies the time when the video should stop playing whenplayVideo()
is called. -
The
getVideoStartBytes
method has been deprecated. The method now always returns a value of0
.
August 22, 2012
This update contains the following changes:
-
The example in the Loading a video player section that demonstrates how to manually create the
<iframe>
tag has been updated to include a closing</iframe>
tag since theonYouTubeIframeAPIReady
function is only called if the closing</iframe>
element is present.
August 6, 2012
This update contains the following changes:
-
The Operations section has been expanded to list all of the supported API functions rather than linking to the JavaScript Player API Reference for that list.
-
The API supports several new functions and one new event that can be used to control the video playback speed:
-
Functions
getAvailablePlaybackRates
– Retrieve the supported playback rates for the cued or playing video. Note that variable playback rates are currently only supported in the HTML5 player.getPlaybackRate
– Retrieve the playback rate for the cued or playing video.setPlaybackRate
– Set the playback rate for the cued or playing video.
-
Events
onPlaybackRateChange
– This event fires when the video's playback rate changes.
-
July 19, 2012
This update contains the following changes:
-
The new
getVideoLoadedFraction
method replaces the now-deprecatedgetVideoBytesLoaded
andgetVideoBytesTotal
methods. The new method returns the percentage of the video that the player shows as buffered. -
The
onError
event may now return an error code of5
, which indicates that the requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred. -
The Requirements section has been updated to indicate that any web page using the IFrame API must also implement the
onYouTubeIframeAPIReady
function. Previously, the section indicated that the required function was namedonYouTubePlayerAPIReady
. Code samples throughout the document have also been updated to use the new name.Note: To ensure that this change does not break existing implementations, both names will work. If, for some reason, your page has an onYouTubeIframeAPIReady
function and anonYouTubePlayerAPIReady
function, both functions will be called, and theonYouTubeIframeAPIReady
function will be called first. -
The code sample in the Getting started section has been updated to reflect that the URL for the IFrame Player API code has changed to
http://www.youtube.com/iframe_api
. To ensure that this change does not affect existing implementations, the old URL (http://www.youtube.com/player_api
) will continue to work.
July 16, 2012
This update contains the following changes:
-
The Operations section now explains that the API supports the
setSize()
anddestroy()
methods. ThesetSize()
method sets the size in pixels of the<iframe>
that contains the player and thedestroy()
method removes the<iframe>
.
June 6, 2012
This update contains the following changes:
-
We have removed the
experimental
status from the IFrame Player API. -
The Loading a video player section has been updated to point out that when inserting the
<iframe>
element that will contain the YouTube player, the IFrame API replaces the element specified in the constructor for the YouTube player. This documentation change does not reflect a change in the API and is intended solely to clarify existing behavior.In addition, that section now notes that the insertion of the
<iframe>
element could affect the layout of your page if the element being replaced has a different display style than the inserted<iframe>
element. By default, an<iframe>
displays as aninline-block
element.
March 30, 2012
This update contains the following changes:
-
The Operations section has been updated to explain that the IFrame API supports a new method,
getIframe()
, which returns the DOM node for the IFrame embed.
March 26, 2012
This update contains the following changes:
-
The Requirements section has been updated to note the minimum player size.