Componente Media Overlay

Continuando de https://meta.discourse.org/t/media-overlay-plugin/60549

Tema de Sobreposição de Mídia do Discourse

Este componente de tema permite que os usuários “destaquem” a mídia em uma janela flutuante enquanto navegam pelo site. Eles podem até mesmo navegar para outro tópico e a mídia continuará funcionando.

Funciona com qualquer <iframe> ou <video> (com tratamento especial para lazyYT). Ele adiciona um botão a cada elemento compatível, que abre um pequeno pop-up no canto inferior direito.

Em seguida, você pode “minimizar” o pop-up, mantendo o áudio tocando em segundo plano, ou fechá-lo completamente.

No momento, o tamanho do vídeo é definido pela incorporação original. Gostaria de adicionar um recurso de “redimensionamento”, seja “clicar e arrastar”, ou simplesmente três botões: “pequeno”, “médio” e “grande”.

Atualmente, isso obscurece o editor… a solução simples é apenas fechar o pop-up se quiser escrever uma postagem :wink:.

Instalação

A URL do tema é

https://github.com/davidtaylorhq/discourse-media-overlay-theme

Para instalar, siga estas instruções:

29 curtidas

I have fixed this with the addition of an explicit z-index, and some explicit colours. With the vincent theme it now looks like this when you mouse-over:

You may want to add some further customisation to make it match your forum’s style :slight_smile:

3 curtidas

Thanks a lot! Works like a charm.

Just noticed this little :bug:

Sans%20titre

This is great! However Im not sure if its just be but while the video is playing if you:

1.change positions or minimmize and remaximize

2.pause and attempt to unpause

  1. play or pause in post, and to the opposite in the media overlay

It just freezes to the default play button and video thumbnail

Anyone else have this issue?

1 curtida

Can you clarify - is this a them or a theme component?

It is a theme component

2 curtidas

OK works now -thank you

It might be better if we can scale the screen and move it to anywhere with mouse.

3 curtidas

O componente de sobreposição deve funcionar com links colados para arquivos .mp4? Como em Should audio and video tags be allowed? - #7 by codinghorror ?

Tentei ativá-lo no meu fórum e ele faz a caixa de vídeo desaparecer completamente quando o vídeo é exibido em uma única caixa a partir de um link mp4. Também testei com iframes e isso faz com que funcione conforme o esperado, mas os iframes são mais difíceis de formatar corretamente :slight_smile:

Acabamos de instalar isso para que os usuários pudessem assistir às audiências de impeachment sem precisar manter outra janela aberta, e foi um sucesso absoluto (um comentário foi: “Isso é muito conveniente. Incrível. De longe, a melhor interface de fórum que já experimentei.”) que pessoas usando celulares e tablets também quiseram. E como não é possível abrir várias janelas em dispositivos móveis, é um recurso excelente.

Para habilitar isso em tablets e celulares, basta remover no-touch das linhas 64 e 82 do Common CSS e, em seguida, redimensionar o player em telas menores com algo como:

@media (max-width: 1024px) {
    #media-overlay,
    #media-overlay iframe{
        width: 400px;
        max-height: 225px;
    }
}
@media (max-width: 768px) {
    #media-overlay,
    #media-overlay iframe{
        width: 320px;
        max-height: 180px;
    }
    #media-overlay {
        &.dock-right {
            right: 10px;
        }
        &.dock-left {
            left: 10px;
        }
    }
}
@media (max-width: 480px) {
    #media-overlay,
    #media-overlay iframe {
        width: 240px;
        max-height: 135px;
    }
    #media-overlay {
        &.dock-right {
            right: 0px;
        }
        &.dock-left {
            left: 0px;
        }
    }
}

Em dispositivos com tela sensível ao toque, o toque longo equivale ao hover para exibir o ícone de controle ou os controles de mídia; depois, toque em outro lugar para escondê-los novamente.

Eu ia deixar desativado em celulares, mas ainda é útil porque você pode ouvir o áudio com o player recolhido.

Acho que essa é uma limitação conhecida, mas vídeos do YouTube não reproduzem áudio quando recolhidos. Além disso, se você começar a reproduzir um YouTube a partir da postagem e depois decidir destacá-lo, não há como reproduzir o vídeo na janela flutuante. Você precisa destacá-lo antes de dar play e só então poderá reproduzi-lo na janela flutuante.

5 curtidas

Isso é supposed para funcionar com vídeos do YouTube incorporados?

1 curtida

Parece funcionar corretamente com vídeos do YouTube se você os postar como um iframe em vez de apenas postar o link e usar o lazyYT do Discourse.

Para que isso funcione, você deve permitir iframes do YouTube no seu site. Para fazer isso, vá em Configurações → “iframes permitidos” e adicione https://www.youtube.com/ à lista de permissões.

Em seguida, ao colar o código de um iframe (você pode encontrar o código de iframe de qualquer vídeo no YouTube em Compartilhar → Incorporar), o vídeo do YouTube incorporado via iframe ficará totalmente funcional com o componente Media Overlay. Ou seja, você precisa postar:

<iframe width="560" height="315" src="https://www.youtube.com/embed/Ft1waA3p2_w" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

em vez de https://www.youtube.com/watch?v=Ft1waA3p2_w

O código do iframe não funcionará no discourse.org porque eles não adicionaram https://www.youtube.com à lista de permissões nas configurações de “iframes permitidos”, mas é fácil adicioná-lo ao seu próprio fórum.

Veja como fica no nosso fórum no meu celular com o player de mídia expandido:

e recolhido:

5 curtidas

Além disso, os vídeos não retomam a reprodução quando altero sua posição.

Se você está falando de vídeos do YouTube, veja minha postagem acima da sua e use o código iframe, assim você não terá esse problema.

Posso testá-lo no seu site?

Claro, aqui está uma postagem com um embed do YouTube via iframe
https://unstuckpolitics.com/t/new-topic-do-not-read/242/53

1 curtida

O componente Media Overlay estava impedindo que vídeos de sites como o imgur fossem exibidos em nosso fórum. Corrigimos o problema removendo video da linha 103, ou seja, alterando $('iframe, video, .lazyYT', $elem) para $('iframe, .lazyYT', $elem)

    function addOverlays($elem) {
      $('iframe, .lazyYT', $elem).wrap("<div class='media-overlay-eligable'></div>")

Agora os vídeos do imgur estão funcionando novamente, e o overlay continua funcionando com iFrames e lazyYTs.

2 curtidas

Para quem tem interesse nessa funcionalidade, o iOS Safari e o Firefox já oferecem isso nativamente, enquanto o Chrome planeja implementá-lo em suas próximas versões.

3 curtidas

Eles não estão planejando lançá-lo no Google Chrome 82? Além disso, ele já está disponível em algum dos canais internos do Google Chrome?

1 curtida