Anpassen des Video-Viewers customizing-video-viewer
Die visuelle Anpassung und die meisten Verhaltensanpassungen erfolgen durch die Erstellung eines benutzerdefinierten CSS.
Der vorgeschlagene Workflow besteht darin, die Standard-CSS-Datei für den entsprechenden Viewer zu übernehmen, sie an einen anderen Speicherort zu kopieren, sie anzupassen und den Speicherort der angepassten Datei im Befehl style=
anzugeben.
Standard-CSS-Dateien finden Sie unter folgendem Speicherort:
<s7_viewers_root>/html5/VideoViewer.css
Benutzerdefinierte CSS-Dateien müssen dieselben Klassendeklarationen wie die Standarddeklaration enthalten. Wenn eine Klassendeklaration weggelassen wird, funktioniert der Viewer nicht ordnungsgemäß, da er keine integrierten Standardstile für Elemente der Benutzeroberfläche bereitstellt.
Eine alternative Möglichkeit zur Bereitstellung benutzerdefinierter CSS-Regeln besteht darin, eingebettete Stile direkt auf der Webseite oder in einer verknüpften externen CSS-Regel zu verwenden.
Beachten Sie beim Erstellen von benutzerdefiniertem CSS, dass der Viewer dem Container-DOM-Element die Klasse .s7videoviewer
zuweist. Wenn Sie eine externe CSS-Datei verwenden, die mit dem Befehl style=
übergeben wird, verwenden Sie für Ihre CSS-Regeln die Klasse .s7videoviewer
als übergeordnete Klasse im untergeordneten Selektor. Wenn Sie Stile auf der Web-Seite einbetten, qualifizieren Sie diesen Selektor auch mit einer ID des Container-DOM-Elements wie folgt:
#<containerId>.s7videoviewer
Erstellen von responsiv gestaltetem CSS section-63e8f93ee2f14fd8bba1ce33a6870b80
Es ist möglich, verschiedene Geräte in CSS als Ziel festzulegen, damit Ihre Inhalte je nach Gerät des Benutzers unterschiedlich angezeigt werden. Dieses Targeting umfasst verschiedene Elementgrößen und die Auflösung von Grafiken in der Benutzeroberfläche, ist jedoch nicht darauf beschränkt.
Der Viewer unterstützt zwei Möglichkeiten zum Erstellen von responsiv gestaltetem CSS: CSS-Markierungen und Standard-CSS-Medienabfragen. Sie können diese beiden Mechanismen unabhängig oder gemeinsam verwenden.
CSS-Markierungen
Um Sie bei der Erstellung von responsiv entworfenen CSS zu unterstützen, unterstützt der Viewer CSS-Markierungen, die spezielle CSS-Klassen enthalten, die dynamisch dem Viewer-Container-Element der obersten Ebene zugewiesen werden. Die Zuweisung basiert auf der Laufzeit-Viewer-Größe und dem Eingabetyp, der auf dem aktuellen Gerät verwendet wird.
Die erste Gruppe von CSS-Markern umfasst die Klassen .s7size_large
, .s7size_medium
und .s7size_small
. Sie werden basierend auf dem Laufzeitbereich des Viewer-Containers angewendet. Das heißt, wenn der Viewer-Bereich gleich oder größer als die Größe eines gemeinsamen Desktop-Monitors .s7size_large
ist. Wenn der Bereich nahe an einem gemeinsamen Tablet-Gerät liegt, wird .s7size_medium
zugewiesen. Für Bereiche, die ähnlich wie Mobiltelefonbildschirme sind, ist .s7size_small
eingestellt. Der Hauptzweck dieser CSS-Markierungen besteht darin, verschiedene Benutzeroberflächen-Layouts für verschiedene Bildschirme und Viewer-Größen zu erstellen.
Die zweite Gruppe von CSS-Markern umfasst .s7mouseinput
und .s7touchinput
. Die Markierung .s7touchinput
wird gesetzt, wenn das aktuelle Gerät Touch-Eingabefunktionen aufweist. Andernfalls wird .s7mouseinput
verwendet. Diese Markierungen dienen zur Erstellung von Eingabeelementen der Benutzeroberfläche mit unterschiedlichen Bildschirmgrößen für verschiedene Eingabetypen, da Touch-Eingaben normalerweise größere Elemente erfordern. Falls das Gerät sowohl über eine Maus- als auch Touch-Funktion verfügt, wird .s7touchinput
eingestellt und der Viewer rendert eine Touch-optimierte Benutzeroberfläche.
Im folgenden Beispiel-CSS wird die Größe der Wiedergabe-/Pause-Schaltfläche auf Systemen mit Mauseingabe auf 28 x 28 Pixel und auf Touch-Geräten auf 56 x 56 Pixel eingestellt. Darüber hinaus wird die Schaltfläche vollständig ausgeblendet, wenn die Viewer-Größe zu klein wird:
.s7videoviewer.s7mouseinput .s7playpausebutton {
width:28px;
height:28px;
}
.s7videoviewer.s7touchinput .s7playpausebutton {
width:56px;
height:56px;
}
.s7videoviewer.s7size_small .s7playpausebutton {
visibility:hidden;
}
Verwenden Sie CSS-Medienabfragen, um Geräte mit einer anderen Pixeldichte als Ziel auszuwählen. Der folgende Medienabfrageblock enthält CSS, das speziell für High-Density-Bildschirme gilt:
@media screen and (-webkit-min-device-pixel-ratio: 1.5)
{
}
Die Verwendung von CSS-Markern ist die flexibelste Möglichkeit, responsives CSS zu erstellen. Der Grund dafür ist, dass Sie damit nicht nur die Bildschirmgröße des Geräts, sondern auch die tatsächliche Viewer-Größe bestimmen können, was bei Layouts responsiver Designseiten nützlich sein kann.
Verwenden Sie die standardmäßige Viewer-CSS-Datei als Beispiel für einen CSS-Marker-Ansatz.
CSS-Medienabfragen
Die Geräteerkennung kann auch mit reinen CSS-Medienabfragen durchgeführt werden. Alles, was in einem bestimmten Medienabfrageblock eingeschlossen ist, wird nur angewendet, wenn er auf einem entsprechenden Gerät ausgeführt wird.
Verwenden Sie bei Anwendung auf Mobile Viewer vier CSS-Medienabfragen, die in Ihrer CSS-Datei in der unten aufgeführten Reihenfolge definiert sind:
-
Enthält nur für alle Touch-Geräte spezifische Regeln.
code language-none @media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px), only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px) { }
-
Enthält nur Regeln für Tablets mit hochauflösenden Bildschirmen.
code language-none @media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px) and (-webkit-min-device-pixel-ratio:1.5), only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px) and (-webkit-min-device-pixel-ratio:1.5) { }
-
Enthält nur für alle Mobiltelefone spezifische Regeln.
code language-none @media only screen and (max-device-width:9in) and (max-device-height:9in) { }
-
Enthält nur Regeln für Mobiltelefone mit hochauflösenden Bildschirmen.
code language-none @media only screen and (max-device-width:9in) and (max-device-height:9in) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (device-width:720px) and (device-height:1280px) and (-webkit-device-pixel-ratio: 2), only screen and (device-width:1280px) and (device-height:720px) and (-webkit-device-pixel-ratio: 2) { }
Mithilfe des CSS-Medienabfrageansatzes sollten Sie CSS mit der Geräteerkennung wie folgt organisieren:
- Zunächst werden im Desktop-spezifischen Abschnitt alle Eigenschaften definiert, die entweder Desktop-spezifisch oder für alle Bildschirme gemeinsam sind.
- Zweitens sollten die vier Medienabfragen in der oben definierten Reihenfolge ausgeführt werden und CSS-Regeln für den entsprechenden Gerätetyp bereitstellen.
Es ist nicht erforderlich, die gesamte Viewer-CSS in jeder Medienabfrage zu duplizieren. Innerhalb einer Medienabfrage werden nur Eigenschaften neu definiert, die für bestimmte Geräte spezifisch sind.
CSS-Sprites section-9b6d8d601cb441d08214dada7bb4eddc
Viele Elemente der Viewer-Benutzeroberfläche werden mit Bitmap-Grafiken formatiert und weisen mehr als einen bestimmten visuellen Status auf. Ein gutes Beispiel ist eine Schaltfläche mit normalerweise mindestens drei verschiedenen Status: "up", "over"und "down". Jeder Status erfordert eine eigene Bitmap-Grafik, die zugewiesen wird.
Bei einem klassischen Stil würde CSS für jeden Status des Benutzeroberflächenelements einen separaten Verweis auf die einzelne Bilddatei auf dem Server haben. Im Folgenden finden Sie ein Beispiel-CSS zum Formatieren einer Vollbildschaltfläche:
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='up'] {
background-image:url(images/v2/PlayButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='over'] {
background-image:url(images/v2/PlayButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='down'] {
background-image:url(images/v2/PlayButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='disabled'] {
background-image:url(images/v2/PlayButton_disabled.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='up'] {
background-image:url(images/v2/PauseButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='over'] {
background-image:url(images/v2/PauseButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='down'] {
background-image:url(images/v2/PauseButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='disabled'] {
background-image:url(images/v2/PauseButton_disabled.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='up'] {
background-image:url(images/v2/ReplayButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='over'] {
background-image:url(images/v2/ReplayButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='down'] {
background-image:url(images/v2/ReplayButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='disabled'] {
background-image:url(images/v2/ReplayButton_disabled.png);
}
Der Nachteil dieses Ansatzes besteht darin, dass der Endbenutzer flackernde oder verzögerte Antworten auf die Benutzeroberfläche erfährt, wenn das Element zum ersten Mal verwendet wird. Diese Aktion tritt auf, da die Bildgrafik für den neuen Elementstatus noch nicht heruntergeladen wurde. Dieser Ansatz kann sich aufgrund der gestiegenen Anzahl an HTTP-Aufrufen an den Server auch geringfügig negativ auf die Leistung auswirken.
CSS-Sprites ist ein anderer Ansatz, bei dem Bildgrafiken für alle Elementzustände in einer PNG-Datei namens "Sprite"kombiniert werden. Ein solches "Sprite"hat alle visuellen Status für das jeweilige Element, das nacheinander positioniert wird. Beim Formatieren eines Benutzeroberflächenelements mit Sprites wird für alle verschiedenen Status in CSS auf dasselbe Sprite-Bild verwiesen. Außerdem wird mit der Eigenschaft "background-position
"für jeden Status angegeben, welcher Teil des "Sprite"-Bildes verwendet wird. Sie können ein "Sprite"-Bild auf jede geeignete Weise strukturieren. Normalerweise wird sie von Viewern vertikal gestapelt. Nachfolgend finden Sie ein "sprite"-basiertes Beispiel für die Formatierung der gleichen Vollbildschaltfläche von oben:
.s7videoviewer .s7fullscreenbutton[state][selected]{
background-image: url(images/v2/FullScreenButton_dark_sprite.png);
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='up'] {
background-position: -84px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='over'] {
background-position: -56px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='down'] {
background-position: -28px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='disabled'] {
background-position: -0px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='up'] {
background-position: -84px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='over'] {
background-position: -56px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='down'] {
background-position: -28px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='disabled'] {
background-position: -0px -1120px;
}
Allgemeine Hinweise und Hinweise zu Stilen section-097418bd618740bba36352629e4d88e1
-
Alle Pfade zu externen Assets in CSS werden mit dem CSS-Speicherort aufgelöst, nicht mit dem Speicherort der Viewer-HTML-Seite. Denken Sie daran, diese Regel zu berücksichtigen, wenn Sie die Standard-CSS an einen anderen Speicherort kopieren. Kopieren Sie die Standard-Assets oder aktualisieren Sie Pfade innerhalb des benutzerdefinierten CSS.
-
Das bevorzugte Format für Bitmap-Grafiken ist PNG.
-
Bitmap-Grafiken werden Elementen der Benutzeroberfläche mithilfe der Eigenschaft
background-image
zugewiesen. -
Die Eigenschaften
width
undheight
eines Benutzeroberflächenelements definieren seine logische Größe. Die Größe der anbackground-image
übergebenen Bitmap wirkt sich nicht auf die logische Größe aus. -
Um die hohe Pixeldichte von hochauflösenden Bildschirmen wie Retina zu verwenden, geben Sie Bitmap-Grafiken doppelt so groß an wie die Elementgröße der logischen Benutzeroberfläche. Wenden Sie dann die Eigenschaft
-webkit-background-size:contain
an, um den Hintergrund auf die Elementgröße der logischen Benutzeroberfläche herunterzuskalieren. -
Um eine Schaltfläche aus der Benutzeroberfläche zu entfernen, fügen Sie
display:none
zur CSS-Klasse hinzu. -
Sie können verschiedene Formate für Farbwerte verwenden, die von CSS unterstützt werden. Wenn Sie Transparenz benötigen, verwenden Sie das Format
rgba(R,G,B,A)
. Andernfalls können Sie das Format#RRGGBB
verwenden. -
Beim Anpassen der Viewer-Benutzeroberfläche mit CSS wird die Verwendung der
!IMPORTANT
-Regel nicht unterstützt, um Viewer-Elemente zu formatieren. Insbesondere sollte die Regel!IMPORTANT
nicht verwendet werden, um Standard- oder Laufzeitstile zu überschreiben, die vom Viewer- oder Viewer-SDK bereitgestellt werden. Der Grund dafür ist, dass dies das Verhalten von richtigen Komponenten beeinflussen kann. Stattdessen sollten Sie CSS-Selektoren mit der richtigen Spezifität verwenden, um CSS-Eigenschaften festzulegen, die in diesem Referenzhandbuch dokumentiert sind.
Allgemeine Benutzeroberflächen-Elemente section-d6330c9be8c444aa9b2a07886e3dbc2a
Im Folgenden finden Sie die Referenzdokumentation zu Elementen der Benutzeroberfläche, die für den Video-Viewer gilt: