Modifica el reproductor de video video en sencillos pasos

El reproductor mp4 de discourse es feo, pensé en cómo mejorarlo, encontré esto, se siente bastante minimalista y la configuración es relativamente simple, solo necesita importar css y js.

Simplemente agregue js y css al encabezado del tema

<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.plyr.io/3.6.12/plyr.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const player = new Plyr('video');
        });
    </script>

Introducción al proyecto:

https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648985399&idx=1&sn=4736244185148aa38aa931d10a320e6e&chksm=f25012d7c5279bc12aa26b0864d2600330ac8da243720695240d90b003685fcff4587fe9b331&scene=27

Traducción al inglés: (cortesía de discourse-ai :magic_wand:)

El reproductor MP4 de Discourse es extremadamente poco atractivo. En mi contemplación y exploración para mejorarlo, me encontré con esta alternativa. Desprende un cierto encanto minimalista y su metodología de configuración es bastante sencilla. La inclusión del CSS y JS correspondientes hace el truco.

Simplemente integre el JS y CSS mencionados anteriormente en el encabezado de su tema:

<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.plyr.io/3.6.12/plyr.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const player = new Plyr('video');
        });
    </script>

Para una introducción completa al proyecto, visite amablemente:

https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648985399&idx=1&sn=4736244185148aa38aa931d10a320e6e&chksm=f25012d7c5279bc12aa26b0864d2600330ac8da243720695240d90b003685fcff4587fe9b331&scene=27

El contenido del texto principal es incorrecto y generará un error. Cuando se carga desde la página principal, el reproductor no funcionará. A continuación, comparto de forma gratuita con quienes lo necesiten, la modificación que le pedí a alguien por $50. El efecto del reproductor es muy bueno, ¡vale la pena recomendarlo!

Ventajas:
La combinación de colores es agradable.
El reproductor se adapta a la pantalla desde el principio, en lugar de crecer de pequeño a grande.
Muchas funciones.

Publicación, solo necesita la etiqueta video.

<video controls>
        <source src="https://xxxx/test.mp4" type="video/mp4">
    </video>

Añada en la cabecera, es mejor descargar css y js en su propio cdn.

<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.openfa.net/css/plyr.js"></script>

Añada en el body del texto principal.

<script type="text/javascript">

let curUrl = "";

setInterval(() => {
    let newUrl = location.href;
    if (curUrl !== newUrl) {
        curUrl = newUrl
        if (document.querySelector("video")) {
            new Plyr('video')
        }
    }
}, 10)

</script>

Efecto final:

También puede configurar la claridad de los subtítulos, etc.

???

恕我直言 这是非常糟糕的代码,糟糕透了。
它将会每10毫秒运行一个99%的时间内都不会起作用的函数,极大的浪费性能。
当然,家用计算机支撑得住这种花销……但它实在是太不优雅了。

IMHO este es un código muy malo, horrible.
Ejecutará una función cada 10 milisegundos que no funcionará el 99% de las veces, lo que supone un enorme desperdicio de rendimiento.
Claro, un ordenador doméstico podría soportar el gasto… pero es simplemente muy poco elegante.

你应该使用discourse的API来完成这项工作。使用这个:
Deberías usar la API de Discourse para hacer esto. usa esto:

<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
        if (document.querySelector("video")) {
            new Plyr('video');
        }
});
</script>

你应该干脆找我的(just kidding)

1 me gusta

Te pagaré la próxima vez, no hay otra opción. He estado intentando esto durante mucho tiempo.

No hay problema, esto es solo un favor. Hablemos de ello la próxima vez que haya un trabajo más desafiante.

(Por supuesto, esto no significa que este trabajo sea fácil… tienes que pasar mucho tiempo leyendo suficiente código fuente de discourse para poder reaccionar rápidamente y saber qué API llamar. Y si no gastas dinero, muy pocas personas realmente dedicarán tiempo a preocuparse por lo que quieres lograr).


<script src="https://cdn.plyr.io/3.7.8/plyr.js"></script>
<script type="text/discourse-plugin" version="1.8">
  api.decorateCookedElement(elem => elem.querySelectorAll('video').forEach((e) => {new Plyr(e)}));
</script>
1 me gusta

Este reproductor es realmente bueno, es más bonito que el que viene por defecto. ¿Qué tareas acepta, gran maestro?

:cara_sonriente_con_lágrimas: Hermano, ¿por qué no apareciste antes

Acabo de probar y comparar, este código se renderiza más rápido


<script src="https://cdn.plyr.io/3.7.8/plyr.js"></script>
<script type="text/discourse-plugin" version="1.8">
  api.decorateCookedElement(elem => elem.querySelectorAll('video').forEach((e) => {new Plyr(e)}));
</script>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.