Automatisch abspielen und Video beim Hochladen looping

Ich möchte, dass Benutzer kurze Videodateien hochladen können, um sie in ihre Beiträge einzubetten, und ich möchte, dass das Standardverhalten des Forums konfigurierbar ist, damit solche Videos standardmäßig automatisch abgespielt werden und in einer Schleife laufen, stummgeschaltet. Damit die Videos als GIF-Ersatz verwendet werden können, so wie es auf Discord funktioniert (tatsächlich kommen die Videos meist von Discord, das anscheinend viele .mp4 anstelle von GIF verwendet).

Dieses Thema zeigt, wie man HTML schreibt, um eine Videodatei automatisch abzuspielen und in einer Schleife laufen zu lassen.

<video width="100%" height="100%" preload="metadata" controls="" autoplay>
      <source src="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">
      <a href="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4</a>
</video>

Das funktioniert, außer dass ich nicht herausfinden kann, wie ich dies verwenden kann, wenn ein Benutzer seinen Beitrag schreibt und seine Videodatei hochlädt. Beachten Sie, wie in diesem Beispiel die vollständige URL zur Videodatei verwendet wird. Diese ist für Benutzer nicht verfügbar, wenn sie ihre Datei hochladen. Außerdem werden die URLs kaputt, wenn die hochgeladenen Dateien des Benutzers auf dem Server verschoben werden oder zu einem anderen S3-Anbieter oder CDN verschoben werden.

Wenn ein Benutzer seine Datei hochlädt, erhält er im Antwortfeld Markdown wie diesen:

![happy-birthday|video](upload://abcdefg123456789.mp4)

Es scheint also nicht möglich zu sein, dass ein Benutzer dies einfach in das HTML umwandelt, das für die automatische Wiedergabe und Schleife (stummgeschaltet) seines Videos benötigt wird. Gibt es dafür eine Methode? Und noch besser, gibt es eine Möglichkeit, dies einfach zum Standardverhalten im gesamten Forum zu machen? Oder zumindest dieses Verhalten standardmäßig zu aktivieren und dem Benutzer die Möglichkeit zu geben, die Einstellungen für automatische Wiedergabe und Schleife beim Hochladen und Posten zu deaktivieren.
(Wenn es derzeit nicht möglich ist, möchte ich dies als Feature Request einreichen :slight_smile: )

Hallo :waving_hand:

Ich denke über zwei Möglichkeiten nach, wie dies möglich sein könnte.

Der erste Weg ist der einfachste: Erstellen Sie einfach eine kleine Theme-Komponente, die die Plugin-API api.decorateCookedElement verwendet, um alle Videos in Beiträgen zu finden und diese Attribute hinzuzufügen (Autoplay, Schleife usw.).

Dadurch wird die gesamte Video-HTML in Beiträgen auf der gesamten Website geändert. Im Composer wird immer noch der von Ihnen erwähnte Markdown-Videocode angezeigt.
![happy-birthday|video](upload://abcdefg123456789.mp4)

Vorteile: Betrifft alle Videos auf der Website (also auch die vorherigen Uploads)
Nachteile: Benutzer können dies nicht steuern, da es auf veröffentlichten Beiträgen geschieht. Es betrifft alle Videos, sodass Themen mit vielen Videos, die gleichzeitig starten sollen, Probleme verursachen können.


Die zweite Option ist etwas mehr Arbeit. Es handelt sich um ein Modal, in dem Benutzer steuern können, welche Attribute zum hochgeladenen Video hinzugefügt werden. Dies kann durch Hinzufügen einer bestimmten Schaltfläche zum Composer ausgelöst werden oder automatisch, wenn ein Video-Upload erkannt wird.

Wenn dies abgeschlossen ist, wird die Video-HTML im Composer eingefügt, die die hinzugefügten Attribute enthält.

<video width="100%" height="100%" preload="metadata" controls="" autoplay>
    <source src="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">
    <a href="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4</a>
</video>

Ein großartiges Beispiel hierfür ist die Theme-Komponente Insert Video.

Vorteile: Benutzer können ihre Videoattribute steuern und wählen, ob Autoplay usw. deaktiviert werden soll, sodass auch videoreiche Themen in Ordnung sind.
Nachteile: Dies wirkt sich nicht auf ältere Videos aus. Aber das ist kein großer Nachteil, da der gesamte zweite Prozess darauf abzielt, wie Benutzer ihre Videos steuern können.


Plus

Die erste Methode kann mit einer Benutzereinstellung oder einer Gruppe kombiniert werden. Damit können Benutzer das Verhalten der Videos einrichten.
Zum Beispiel: Autoplay-Videos aktivieren oder einer Gruppe beitreten, die das Autoplay von Videos aktiviert usw.


Bearbeiten: Ich habe gerade darüber nachgedacht, dass ich Lazy Loading vergessen habe. Wahrscheinlich funktioniert der erste Prozess jetzt nicht mehr, da Lazy Loading das Video nur lädt, wenn der Benutzer auf die Miniaturansicht des Wiedergabeschalters klickt. Ich habe es noch nicht ausprobiert… :thinking:

2 „Gefällt mir“

Ja, ich denke, das Beste wäre es tatsächlich, es für den Benutzer konfigurierbar zu machen, ob er es einstellen möchte oder nicht. Ich frage mich, wie schwierig das wäre? Würde das als „Theme-Komponente“ gelten?