¿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: 11
¿Te sirvió? Únete a la conversación

Con tu cuenta gratis puedes responder, escribirle al autor por mensaje privado y comprar con Saldo retenido: el pago se libera cuando recibes lo acordado.

Toma 30 segundos · vuelves a este tema al terminar
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! 🚀
 
⚡ Dynamo Player v1.9 BETA — ¡Gran Actualización! Aspect Ratio Ajustable, Personalización Total de Iconos SVG y Menú Contextual Avanzado

¡Hola Betas! 👋

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


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


Para esta entrega me enfoqué en dar el salto definitivo en experiencia de usuario móvil, control contextual completo y personalización directa de interfaz en caliente sin necesidad de recompilar el proyecto.



📊 ¿Qué hay de nuevo en la v1.9?

📱 1. Aspect Ratio Ajustable & Zoom para Móviles
• Adiós a las barras negras: Permite alternar al instante entre el aspect ratio original del video y el modo rellenar pantalla (fill/zoom).
• Diseñado específicamente para pantallas alargadas de smartphones y monitores ultrapanorámicos, adaptando el encuadre sin deformar la imagen ni perder la proporción del contenido.

🎨 2. Personalización Reactiva de Iconos SVG (API & CDN)
• Sobrescribe cualquier icono al vuelo: Ahora puedes cambiar los iconos de play, pausa, volumen, ajustes o pantalla completa pasando tus propios strings SVG directamente desde JavaScript o CDN.
• Implementación de DynamoPlayer.setIcons({...}), setIcon() individual o asignación reactiva mediante alias (controls['settings'] = '...').
• Permite actualizar los iconos en caliente en todos los reproductores activos de la página sin tener que compilar ni tocar los archivos fuente.

🖱️ 3. Menús Diferenciados: Clic Izquierdo & Clic Derecho Contextual
• Menú de Configuración (Clic Izquierdo): Acceso rápido y limpio a cambio de resoluciones (1080p, 720p, etc.), selector de pistas de audio, subtítulos WebVTT y velocidad de reproducción.
• Menú Contextual Avanzado (Clic Derecho o Toque Sostenido en Móvil): Integra herramientas avanzadas estilo plataformas de streaming:
- Captura instantánea de fotogramas en resolución HD.
- Reproducción en bucle (loop).
- Modo Picture-in-Picture (PiP).
- Estadísticas técnicas detalladas para depuración (Stats for Nerds).

🧠 4. Controles Inteligentes & Menús Persistentes
• Los controles principales se ocultan suavemente durante la reproducción para no estorbar la vista.
• Si el usuario tiene abierto cualquier menú de configuración o el menú contextual, los controles se congelan en pantalla para evitar cierres accidentales mientras se navega por los ajustes.

🛡️ 5. Arquitectura Ligera (~11 KB Gzip) y Cero Conflictos
• Mantiene su núcleo ultra-compacto sin dependencias de librerías externas.
• Estilos totalmente encapsulados bajo el namespace .dynamo-*, garantizando compatibilidad absoluta con sitios que usen Tailwind CSS, Bootstrap o estilos personalizados.
• Soporte multi-instancia nativo: cada reproductor en el DOM gestiona su propio estado sin colisiones de eventos.



💻 ¿Cómo implementarlo en tu web?

Solo necesitas incluir el script minificado (desde CDN o descargado en tu servidor):

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>

(Para streams en vivo o VOD vía HLS .m3u8, Dynamo Player descarga e inicializa hls.js de forma automática bajo demanda únicamente si el navegador no lo soporta de forma nativa).



🔗 Enlaces y Demo

• 🌐 Demo en vivo y Documentación: https://alexmejf.github.io/dynamo_player/
• 🐙 Repositorio en GitHub: https://github.com/AlexMejf/dynamo_player
• 📄 Licencia: MIT (Open Source y 100% gratuito)

Cualquier feedback, reporte de bugs en diferentes navegadores o ideas para las próximas versiones son más que bienvenidos en los comentarios. ¡Espero que les sirva un montón para sus proyectos y sitios web! 🚀
 
esta interesante, te deje una estrellita
 
Atrás
Arriba