O que é o Dynamo Player em Vanilla JavaScript e como funciona?

  • Autor Autor aex studio
  • Data de início Data de início
Este tópico foi traduzido automaticamente do espanhol. Ver original
aex studio

aex studio

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Apresento a vocês o Dynamo Player, um reprodutor de vídeo moderno desenvolvido em Vanilla JavaScript, projetado para oferecer uma experiência visual limpa, fluida e similar a plataformas de streaming, mas sem depender de bibliotecas pesadas.


A sua essência está em combinar desempenho, simplicidade e uma interface premium, aproveitando ao máximo o elemento nativo <video/> do navegador.

✨ DEMO
1774828412377.webpClique aqui

✨ O que o torna especial?

  • Suporte para HLS (.m3u8) e múltiplas qualidades
  • Legendas e faixas de áudio
  • Miniaturas automáticas ao navegar na barra de progresso
  • Modo ambiente dinâmico que projeta as cores do vídeo
  • Picture-in-Picture
  • Controles flutuantes estilo streaming
  • Inicialização automática e compatibilidade com conteúdo dinâmico
A ideia por trás do Dynamo Player é oferecer uma solução leve, elegante e altamente adaptável, pensada tanto para projetos pequenos quanto para experiências multimídia mais ambiciosas, de forma completamente gratuita e personalizável.

⚡ Em poucas palavras: a potência de um reprodutor premium com a simplicidade do Vanilla JS.


Espero que gostem da minha biblioteca Dynamo. A biblioteca é completamente open-source para sua livre modificação e distribuição.
Sintam-se à vontade para contribuir com qualquer ideia ou sugestão, vocês podem encontrá-la no github
 

Anexos

  • 1774828357365.webp
    1774828357365.webp
    71 KB · Visitas: 11
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Ótimo projeto, parabéns!!!


Não esqueça de remover os eventos e temporizadores quando o reprodutor for destruído 😉
 
Apresento a vocês o Dynamo Player, um reprodutor de vídeo moderno desenvolvido em Vanilla JavaScript, projetado para oferecer uma experiência visual limpa, fluida e similar a plataformas de streaming, mas sem depender de bibliotecas pesadas.


A sua essência está em combinar desempenho, simplicidade e uma interface premium, aproveitando ao máximo o elemento nativo <video/> do navegador.

✨ DEMO
Ver o anexo 1600933Clique aqui

✨ O que o torna especial?

  • Suporte para HLS (.m3u8) e múltiplas qualidades
  • Legendas e faixas de áudio
  • Miniaturas automáticas ao navegar na barra de progresso
  • Modo ambiente dinâmico que projeta as cores do vídeo
  • Picture-in-Picture
  • Controles flutuantes estilo streaming
  • Inicialização automática e compatibilidade com conteúdo dinâmico
A ideia por trás do Dynamo Player é oferecer uma solução leve, elegante e altamente adaptável, pensada tanto para projetos pequenos quanto para experiências multimídia mais ambiciosas, de forma completamente gratuita e personalizável.

⚡ Em poucas palavras: a potência de um reprodutor premium com a simplicidade do Vanilla JS.


Espero que gostem da minha biblioteca Dynamo. A biblioteca é completamente open-source para sua livre modificação e distribuição.
Sintam-se à vontade para contribuir com qualquer ideia ou sugestão, vocês podem encontrá-la no github
O seu player vai me servir para um projeto em que estou trabalhando, vou testar para ver como fica, gostei do design
 
Tem uma cara muito boa, principalmente levando em conta que é feito em Vanilla JS e não obriga a carregar um framework completo.

Para mim, uma das coisas que mais me interessa é o suporte HLS e como ele se comporta quando você tem várias qualidades disponíveis. Em projetos de vídeo, no final, não importa apenas que o reprodutor seja bonito, mas também que carregue rápido e seja estável em dispositivos móveis.

Se alguém testar em um projeto real, seria bom saber como ele se sai em relação ao consumo de recursos e compatibilidade entre navegadores. A interface, sem dúvida, está muito bem feita.
 
Tem uma cara muito boa, principalmente levando em conta que é feito em Vanilla JS e não obriga a carregar um framework completo.

Para mim, uma das coisas que mais me interessa é o suporte HLS e como ele se comporta quando você tem várias qualidades disponíveis. Em projetos de vídeo, no final, não importa apenas que o reprodutor seja bonito, mas também que carregue rápido e seja estável em dispositivos móveis.

Se alguém testar em um projeto real, seria bom saber como ele se sai em relação ao consumo de recursos e compatibilidade entre navegadores. A interface, sem dúvida, está muito bem feita.
Eu estou testando AQUI
 
Espero que seja útil para você. Caso encontre detalhes, não tenho problemas que você os diga; no final das contas, o feedback é bom e serve para melhorar o Player. Já estive trabalhando em alguns erros e em breve farei algumas atualizações no repositório
 
Cara, gostei enormemente do Dynamo, uma interface super limpa.
 
⚡ Dynamo Player v1.7 — Grande Atualização! Redução de 51% do peso (~8 KB Gzip), Multi-Player e
Zero Conflitos CSS


Olá Betas! 👋

Compartilho com vocês a nova versão v1.7 do Dynamo Player, meu player de vídeo web ultraleve e
moderno construído em Vanilla JS (zero dependências obrigatórias de runtime, suporte HLS sob demanda,
múltiplas qualidades, legendas, modo ambiente e miniaturas automáticas).

Nesta versão, foquei 100% em desempenho extremo, blindagem de memória e uma redução massiva de
peso
.



📊 O que há de novo na v1.7? (Comparado com a v1.6.1)

🚀 1. Redução de 51% no Peso do Player (~8.2 KB Gzip)
Otimizei e re-vetorizei manualmente todo o catálogo de ícones SVG do player e configurei compressão
avançada multi-passo com Terser:
• icons.js: Passou de 36.2 KB para apenas 4.3 KB (📉 -88%).
• Bundle Minificado (.min.js): Passou de 63.03 KB para 30.91 KB (📉 -
51%
).
• Transferência de Rede (Gzip): De 18.36 KB para apenas 8.25 KB! ⚡



🎯 2. Ocultamento Inteligente Sincronizado (Menu & Controles)
• Antes: Se o usuário estivesse alterando a qualidade ou legendas, os controles eram ocultados por
inatividade, deixando o menu flutuando sozinho sobre o vídeo.
• Agora: Enquanto o menu de configuração estiver aberto, os controles permanecem visíveis. Ao
fechá-lo, o temporizador de inatividade é retomado suavemente e, se os controles forem ocultados por pausa ou
finalização, o menu é fechado automaticamente.



🛡️ 3. Isolamento Total de CSS (Zero Conflitos com seu site)
• Antes: Existiam classes globais genéricas como .hidden que podiam interferir com o Navbar, modais ou
utilitários de frameworks como Tailwind CSS ou Bootstrap.
• Agora: Encapsulei todos os estilos em 100% sob prefixos .dynamo-*. Você pode incorporá-lo em
qualquer site sem medo de quebrar o design do header ou menus responsivos.



👥 4. Suporte Multi-Player Real na Mesma Página
• Limitei todas as consultas no DOM estritamente a cada container (wrapper.querySelector).
• Cada player tem seu próprio ciclo de vida, estado e temporizadores isolados.
• Você pode colocar dezenas de vídeos em uma única página sem cruzamento de eventos ou colisões de variáveis.



🧠 5. Zero Vazamentos de Memória (Memory Leaks) e Economia de CPU
• Dynamic Dragging Binding: Os listeners globais de mousemove e mouseup para a barra de progresso não
são mais executados o tempo todo em segundo plano; apenas se inscrevem ao clicar e segurar e são destruídos
imediatamente ao soltar.
• Limpeza de Timers: Centralizei a destruição com clearHideTimer() para evitar timers órfãos na
memória ao pausar ou terminar o vídeo.



💻 Como implementar no seu site?

Você só precisa incluir um único arquivo JS (ou baixá-lo para sua hospedagem):

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>

(Se você usa HLS com streams .m3u8, o Dynamo Player baixa o hls.js automaticamente sob demanda apenas se o
navegador precisar).




🔗 Links e Demo

• 🌐 Demo ao vivo e Documentação: https://alexmejf.
github.io/dynamo_player/

• 🐙 Repositório GitHub: https://github.
com/AlexMejf/dynamo_player

• 📄 Licença: MIT (Open Source e 100% gratuito)



Qualquer feedback, dúvida ou sugestão de novas funções para o roadmap (componentes para React/Vue, MPEG-DASH,
playlists, etc.) lerei com prazer nos comentários. Espero que seja de grande utilidade para seus projetos e
sites! 🚀
 
⚡ Dynamo Player v1.9 BETA — Grande Atualização! Aspect Ratio Ajustável, Personalização Total de Ícones SVG e Menu Contextual Avançado

Olá Betas! 👋

Compartilho com vocês a nova versão v1.9 BETA do Dynamo Player, meu player de vídeo web ultraleve e moderno construído em Vanilla JS (zero dependências obrigatórias de runtime, suporte HLS adaptativo sob demanda, múltiplas qualidades, legendas, modo ambiente e miniaturas automáticas).


• 🌐 Demo ao vivo e Documentação: https://alexmejf.github.io/dynamo_player/


Para esta entrega, foquei em dar o salto definitivo na experiência de usuário móvel, controle contextual completo e personalização direta de interface em tempo real, sem necessidade de recompilar o projeto.



📊 O que há de novo na v1.9?

📱 1. Aspect Ratio Ajustável & Zoom para Celulares
• Adeus às barras pretas: Permite alternar instantaneamente entre o aspect ratio original do vídeo e o modo preencher tela (fill/zoom).
• Projetado especificamente para telas alongadas de smartphones e monitores ultrapanorâmicos, adaptando o enquadramento sem deformar a imagem nem perder a proporção do conteúdo.

🎨 2. Personalização Reativa de Ícones SVG (API & CDN)
• Sobrescreva qualquer ícone em tempo real: Agora você pode alterar os ícones de play, pausa, volume, ajustes ou tela cheia passando suas próprias strings SVG diretamente via JavaScript ou CDN.
• Implementação de DynamoPlayer.setIcons({...}), setIcon() individual ou atribuição reativa via alias (controls['settings'] = '...').
• Permite atualizar os ícones em tempo real em todos os players ativos da página sem precisar compilar ou tocar nos arquivos fonte.

🖱️ 3. Menus Diferenciados: Clique Esquerdo & Clique Direito Contextual
• Menu de Configuração (Clique Esquerdo): Acesso rápido e limpo para troca de resoluções (1080p, 720p, etc.), seletor de faixas de áudio, legendas WebVTT e velocidade de reprodução.
• Menu Contextual Avançado (Clique Direito ou Toque Sustentado no Celular): Integra ferramentas avançadas estilo plataformas de streaming:
- Captura instantânea de frames em resolução HD.
- Reprodução em loop (loop).
- Modo Picture-in-Picture (PiP).
- Estatísticas técnicas detalhadas para depuração (Stats for Nerds).

🧠 4. Controles Inteligentes & Menus Persistentes
• Os controles principais se ocultam suavemente durante a reprodução para não atrapalhar a visão.
• Se o usuário estiver com qualquer menu de configuração ou menu contextual aberto, os controles ficam congelados na tela para evitar fechamentos acidentais enquanto navega pelos ajustes.

🛡️ 5. Arquitetura Leve (~11 KB Gzip) e Zero Conflitos
• Mantém seu núcleo ultracompacto sem dependências de bibliotecas externas.
• Estilos totalmente encapsulados sob o namespace .dynamo-*, garantindo compatibilidade absoluta com sites que usem Tailwind CSS, Bootstrap ou estilos personalizados.
• Suporte multi-instância nativo: cada player no DOM gerencia seu próprio estado sem colisões de eventos.



💻 Como implementar no seu site?

Você só precisa incluir o script minificado (via CDN ou baixado no seu 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 ao vivo ou VOD via HLS .m3u8, o Dynamo Player baixa e inicializa o hls.js automaticamente sob demanda, apenas se o navegador não o suportar nativamente).



🔗 Links e Demo

• 🌐 Demo ao vivo e Documentação: https://alexmejf.github.io/dynamo_player/
• 🐙 Repositório no GitHub: https://github.com/AlexMejf/dynamo_player
• 📄 Licença: MIT (Open Source e 100% gratuito)

Qualquer feedback, relato de bugs em diferentes navegadores ou ideias para as próximas versões são mais que bem-vindos nos comentários. Espero que seja muito útil para seus projetos e sites! 🚀
 
está interessante, deixei uma estrelinha para você
 
Voltar
Topo