¿Qué es Dynamo Player en Vanilla JavaScript y cómo funciona?

  • Autor Autor aex studio
  • Fecha de inicio Fecha de inicio
aex studio

aex studio

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Les presento Dynamo Player es un reproductor de video moderno desarrollado en Vanilla JavaScript, diseñado para ofrecer una experiencia visual limpia, fluida y similar a plataformas de streaming, pero sin depender de librerías pesadas.


Su esencia está en combinar rendimiento, simplicidad y una interfaz premium, aprovechando al máximo el elemento nativo <video/> del navegador.

✨ DEMO
1774828412377.webpClick aqui

¿Qué lo hace especial?

  • Soporte para HLS (.m3u8) y múltiples calidades
  • Subtítulos y pistas de audio
  • Miniaturas automáticas al navegar la barra de progreso
  • Modo ambiente dinámico que proyecta los colores del video
  • Picture-in-Picture
  • Controles flotantes estilo streaming
  • Inicialización automática y compatibilidad con contenido dinámico
La idea detrás de Dynamo Player es ofrecer una solución ligera, elegante y altamente adaptable, pensada tanto para proyectos pequeños como para experiencias multimedia más ambiciosas de forma completamente gratis y personalizable.

⚡ En pocas palabras: la potencia de un reproductor premium con la simplicidad de Vanilla JS.


Espero les agrade mi libreria Dynamo, La libreria es completamente open-source para su libre modificación y distribución
Siéntanse libres de aportar cualquier idea o sugerencia lo pueden encontra en github
 

Adjuntos

  • 1774828357365.webp
    1774828357365.webp
    71 KB · Visitas: 10
Gran proyecto, felicitaciones!!!


No olvides remover los eventos y temporizadores cuando el reproductor se destruye 😉
 
Les presento Dynamo Player es un reproductor de video moderno desarrollado en Vanilla JavaScript, diseñado para ofrecer una experiencia visual limpia, fluida y similar a plataformas de streaming, pero sin depender de librerías pesadas.


Su esencia está en combinar rendimiento, simplicidad y una interfaz premium, aprovechando al máximo el elemento nativo <video/> del navegador.

✨ DEMO
Ver el archivo adjunto 1600933Click aqui

¿Qué lo hace especial?

  • Soporte para HLS (.m3u8) y múltiples calidades
  • Subtítulos y pistas de audio
  • Miniaturas automáticas al navegar la barra de progreso
  • Modo ambiente dinámico que proyecta los colores del video
  • Picture-in-Picture
  • Controles flotantes estilo streaming
  • Inicialización automática y compatibilidad con contenido dinámico
La idea detrás de Dynamo Player es ofrecer una solución ligera, elegante y altamente adaptable, pensada tanto para proyectos pequeños como para experiencias multimedia más ambiciosas de forma completamente gratis y personalizable.

⚡ En pocas palabras: la potencia de un reproductor premium con la simplicidad de Vanilla JS.


Espero les agrade mi libreria Dynamo, La libreria es completamente open-source para su libre modificación y distribución
Siéntanse libres de aportar cualquier idea o sugerencia lo pueden encontra en github
me va a servir tu player para un proyecto en el que ando trabajando, lo voy a probar que tal me gusto el diseño
 
Tiene muy buena pinta, sobre todo teniendo en cuenta que está hecho en Vanilla JS y no obliga a cargar un framework completo.

A mí una de las cosas que más me interesa es el soporte HLS y cómo se comporta cuando tienes varias calidades disponibles. En proyectos de vídeo al final no solo importa que el reproductor sea bonito, sino también que cargue rápido y sea estable en móvil.

Si alguien lo prueba en un proyecto real estaría bien conocer qué tal va de consumo de recursos y compatibilidad entre navegadores. La interfaz desde luego está bastante conseguida.
 
Tiene muy buena pinta, sobre todo teniendo en cuenta que está hecho en Vanilla JS y no obliga a cargar un framework completo.

A mí una de las cosas que más me interesa es el soporte HLS y cómo se comporta cuando tienes varias calidades disponibles. En proyectos de vídeo al final no solo importa que el reproductor sea bonito, sino también que cargue rápido y sea estable en móvil.

Si alguien lo prueba en un proyecto real estaría bien conocer qué tal va de consumo de recursos y compatibilidad entre navegadores. La interfaz desde luego está bastante conseguida.
yo lo ando probando AQUI
 
Espero que te sea de utilidad, en caso de que encuentres detalles, no tengo problemas con que los digas al final de cuentas el feedback es bueno y sirve para mejorar el Player, que ya estuve trabajando con unos errores pronto hare unas actualizaciones al repo
 
Parce me gusta enormemente Dynamo, una interfaz super limpia.
 
⚡ Dynamo Player v1.7 — ¡Gran Actualización! Reducción del 51% de peso (~8 KB Gzip), Multi-Player y
Cero Conflictos CSS


¡Hola Betas! 👋

Les comparto la nueva versión v1.7 de Dynamo Player, mi reproductor de video web ultraligero y
moderno construido en Vanilla JS (cero dependencias obligatorias de runtime, soporte HLS bajo demanda,
múltiples calidades, subtítulos, modo ambiente y miniaturas automáticas).

En esta versión me enfoqué al 100% en rendimiento extremo, blindaje de memoria y una reducción masiva de
peso
.



📊 ¿Qué hay de nuevo en la v1.7? (Comparado con la v1.6.1)

🚀 1. Reducción del 51% en el Peso del Reproductor (~8.2 KB Gzip)
Optimicé y re-vectoricé manualmente todo el catálogo de iconos SVG del reproductor y configuré compresión
avanzada multi-paso con Terser:
icons.js: Pasó de 36.2 KB a solo 4.3 KB (📉 -88%).
Bundle Minificado (.min.js): Pasó de 63.03 KB a 30.91 KB (📉 -
51%
).
Transferencia de Red (Gzip): ¡De 18.36 KB a solo 8.25 KB! ⚡



🎯 2. Ocultamiento Inteligente Sincronizado (Menú & Controles)
Antes: Si el usuario estaba cambiando de calidad o subtítulos, los controles se ocultaban por
inactividad dejando el menú flotando solo sobre el video.
Ahora: Mientras el menú de configuración esté abierto, los controles permanecen visibles. Al
cerrarlo, el temporizador de inactividad se reanuda suavemente y, si los controles se ocultan por pausa o
finalización, el menú se cierra automáticamente.



🛡️ 3. Aislamiento Total de CSS (Cero Conflictos con tu Web)
Antes: Existían clases globales genéricas como .hidden que podían interferir con el Navbar, modales o
utilidades de frameworks como Tailwind CSS o Bootstrap.
Ahora: Encapsulé todos los estilos al 100% bajo prefijos .dynamo-*. Puedes incrustarlo en
cualquier sitio web sin temor a que rompa el diseño del header o menús responsive.



👥 4. Soporte Multi-Reproductor Real en la Misma Página
• Acoté todas las consultas en el DOM estrictamente a cada contenedor (wrapper.querySelector).
• Cada reproductor tiene su propio ciclo de vida, estado y temporizadores aislados.
• Puedes colocar decenas de videos en una sola página sin cruce de eventos ni colisiones de variables.



🧠 5. Cero Fugas de Memoria (Memory Leaks) y Ahorro de CPU
Dynamic Dragging Binding: Los listeners globales de mousemove y mouseup para la barra de progreso ya no
se ejecutan todo el tiempo en segundo plano; solo se suscriben al hacer clic sostenido y se destruyen de
inmediato al soltarlo.
Limpieza de Timers: Centralicé la destrucción con clearHideTimer() para evitar timers huérfanos en
memoria al pausar o terminar el video.



💻 ¿Cómo implementarlo en tu web?

Solo necesitas incluir un único archivo JS (o descargarlo a tu hosting):

HTML:
<!-- Cargar Dynamo Player -->
    <script src="https://alexmejf.github.io/dynamo_player/dist/dynamo-player.min.js"></script>

    <!-- Tu elemento de video -->
    <video
      class="dynamo-player"
      data-src="https://tu-servidor.com/video.mp4"
      poster="https://tu-servidor.com/poster.jpg"
      ambientMode="true"
      controlsOverscreen="true"
      autoThumbnails="true"
      inPicture="true">
    </video>

(Si usas HLS con streams .m3u8, Dynamo Player descarga hls.js automáticamente bajo demanda únicamente si el
navegador lo necesita).




🔗 Enlaces y Demo

• 🌐 Demo en vivo y Documentación: https://alexmejf.
github.io/dynamo_player/

• 🐙 Repositorio GitHub: https://github.
com/AlexMejf/dynamo_player

• 📄 Licencia: MIT (Open Source y 100% gratuito)



Cualquier feedback, duda o sugerencia de nuevas funciones para el roadmap (componentes para React/Vue, MPEG-DASH,
playlists, etc.) la leo con gusto en los comentarios. ¡Espero que les sea de gran utilidad para sus proyectos y
sitios webs! 🚀
 
Atrás
Arriba