Reproducir y poner en bucle automáticamente el video al subir

Quiero que los usuarios puedan subir archivos de video cortos para incrustarlos en sus publicaciones, y quiero que el comportamiento predeterminado del foro sea configurable para que dichos videos se reproduzcan automáticamente y en bucle, silenciados. Para que los videos puedan usarse como reemplazo de gifs, de la misma manera que funciona en Discord (de hecho, los videos provienen principalmente de Discord, que usa muchos .mp4 en lugar de gif, al parecer).

Este tema muestra cómo escribir HTML para que un archivo de video se reproduzca automáticamente y en bucle.

<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>

Esto funciona, excepto que no puedo averiguar cómo usar esto cuando un usuario está escribiendo su publicación y subiendo su archivo de video. Tenga en cuenta que en este ejemplo se utiliza la URL completa del archivo de video. Esto no está disponible para los usuarios cuando suben su archivo, además, si los archivos que suben los usuarios se mueven en el servidor o se mueven a un proveedor S3 o CDN diferente, la URL también se romperá.

Cuando un usuario sube su archivo, en el cuadro de Respuesta obtiene Markdown como este:

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

Por lo tanto, no parece ser posible que un usuario convierta esto simplemente al HTML necesario para que su video se reproduzca automáticamente y en bucle (silenciado). ¿Existe algún método disponible para esto? Y aún mejor, ¿hay alguna manera de que esto sea el comportamiento predeterminado en todo el foro? O al menos dejar este comportamiento habilitado por defecto, y permitir que el usuario opte por no participar en la configuración de reproducción automática y bucle cuando esté subiendo y publicando.
(Si no es posible actualmente, me gustaría enviarlo como una Solicitud de Funcionalidad :))

Hola :waving_hand:

Estoy pensando en dos maneras en que esto podría ser posible.

La primera es la más sencilla, simplemente crear un pequeño componente temático que utilice la API del plugin api.decorateCookedElement para encontrar todos los videos en las publicaciones y agregar estos atributos. (autoplay, loop, etc.)

Esto modificará el HTML de todos los videos en las publicaciones de todo el sitio. En el editor, todavía aparecerá el código de video markdown que mencionaste anteriormente.
![happy-birthday|video](upload://abcdefg123456789.mp4)

Pros: afectó a todos los videos del sitio (incluidos los anteriores)
Contras: los usuarios no pueden controlarlo porque se aplica a las publicaciones publicadas. Afecta a todos los videos, por lo que si tienes un tema con muchos videos y estos quieren iniciarse al mismo tiempo, puede generar problemas.


La segunda opción es un poco más de trabajo. Es una ventana modal donde los usuarios pueden controlar qué atributos se agregarán al video cargado. Se puede activar agregando un botón específico al editor o se puede activar automáticamente cuando detecta una carga de video.

Cuando esté hecho, insertará el HTML del video en el editor que contiene los atributos agregados.

<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>

Un gran ejemplo de esto es el componente temático Insertar Video.

Pros: los usuarios pueden controlar los atributos de sus videos y pueden optar por deshabilitar la reproducción automática, etc., por lo que los temas con muchos videos también estarán bien.
Contras: no afectará a los videos más antiguos. Pero no es una gran desventaja porque todo este segundo proceso se trata de cómo los usuarios pueden controlar sus videos.


Además

El primer método se puede combinar con una configuración de usuario o un grupo. Con esto, los usuarios pueden configurar el comportamiento de los videos.
Por ejemplo: Habilitar reproducción automática de videos o unirse a un grupo que activará la reproducción automática de videos, etc.


Editar: Acabo de pensar que olvidé la carga diferida, es probable que el primer proceso no funcione ahora porque la carga diferida solo carga el video si el usuario hace clic en el botón de reproducción de la miniatura. Aún no lo he intentado… :thinking:

2 Me gusta

Sí, creo que lo mejor sería hacerlo configurable por el usuario si quieren que se establezca o no. Me pregunto qué tan difícil sería hacer esto. ¿Se consideraría un “componente temático”?