Composant Media Overlay

Suite à https://meta.discourse.org/t/media-overlay-plugin/60549

Thème Discourse Media Overlay

Ce composant de thème permet aux utilisateurs de « détacher » les médias dans une fenêtre flottante pendant qu’ils naviguent sur le site. Ils peuvent même naviguer vers un autre sujet et le média continuera de fonctionner.

Il fonctionne avec n’importe quel <iframe> ou <video> (avec un traitement spécial pour lazyYT). Il ajoute un bouton à chaque élément compatible, qui ouvre ensuite une petite fenêtre contextuelle en bas à droite.

Vous pouvez ensuite la « minimiser », ce qui maintient le son en cours en arrière-plan, ou la fermer complètement.

Pour le moment, la taille de la vidéo est déterminée par l’intégration originale. J’aimerais ajouter une fonctionnalité de « redimensionnement », soit par « clic et glisser », soit simplement avec 3 boutons : « petit », « moyen », « grand ».

Actuellement, cela masque l’éditeur… la solution simple est de simplement fermer la fenêtre contextuelle si vous souhaitez rédiger un message :wink:.

Installation

L’URL du thème est :

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

Pour l’installer, suivez ces instructions :

29 « J'aime »

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 « J'aime »

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 « J'aime »

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

It is a theme component

2 « J'aime »

OK works now -thank you

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

3 « J'aime »

Le composant de superposition est-il censé fonctionner avec des liens collés vers des fichiers .mp4 ? Comme dans Should audio and video tags be allowed? - #7 by codinghorror ?

J’ai essayé de l’activer sur mon forum, mais cela fait disparaître complètement la boîte vidéo lorsque la vidéo est encadrée à partir d’un lien mp4. J’ai également testé avec des iframes, et cela fonctionne comme prévu, mais les iframes sont plus difficiles à formater correctement :slight_smile:

Nous venons de l’installer pour que les utilisateurs puissent regarder les audiences de destitution sans avoir à ouvrir une autre fenêtre, et cela a été un véritable succès (un commentaire disait : « C’est très pratique. Incroyable. C’est de loin la meilleure interface de forum que j’aie jamais utilisée. ») au point que les personnes utilisant des téléphones et des tablettes ont voulu en bénéficier également. Et comme il est impossible d’ouvrir plusieurs fenêtres sur un appareil mobile, c’est une fonctionnalité très utile.

Pour l’activer sur les tablettes et les téléphones, supprimez simplement no-touch des lignes 64 et 82 du fichier Common CSS, puis ajustez la taille du lecteur sur les écrans plus petits avec quelque chose comme :

@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;
        }
    }
}

Sur les appareils tactiles, un appui long équivaut à un survol pour afficher l’icône de contrôle ou les contrôles multimédias, puis touchez ailleurs pour les masquer à nouveau.

Je comptais le désactiver sur les téléphones, mais cela reste utile même sur un téléphone, car vous pouvez écouter l’audio avec le lecteur réduit.

Je suppose qu’il s’agit d’une limitation connue, mais les vidéos YouTube ne diffusent pas l’audio lorsqu’elles sont réduites, et si vous lancez une vidéo YouTube depuis un message puis décidez de la détacher, il n’y a aucun moyen de lire la vidéo dans la fenêtre flottante. Vous devez d’abord la détacher sans la lancer, puis vous pourrez la lire dans la fenêtre flottante.

5 « J'aime »

C’est censé fonctionner avec des vidéos YouTube intégrées ?

1 « J'aime »

Cela semble fonctionner correctement avec les vidéos YouTube si vous les publiez sous forme de cadre intégré (iframe) plutôt que de simplement publier le lien et d’utiliser la fonctionnalité Discourse lazyYT.

Pour que cela fonctionne, vous devez autoriser les iframes YouTube sur votre site. Pour ce faire, allez dans Paramètres → « iframes autorisées » et ajoutez https://www.youtube.com/ à la liste blanche.

Ensuite, lorsque vous collez le code d’une iframe (vous pouvez trouver le code d’iframe pour n’importe quelle vidéo sur YouTube sous Partager → Intégrer), la vidéo YouTube intégrée via l’iframe sera entièrement fonctionnelle avec le composant Media Overlay. Autrement dit, vous devez publier :

<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>

au lieu de https://www.youtube.com/watch?v=Ft1waA3p2_w.

Le code iframe ne fonctionnera pas sur discourse.org car ils n’ont pas autorisé https://www.youtube.com dans leurs paramètres « iframes autorisées », mais il est facile de l’ajouter à votre propre forum.

Voici à quoi cela ressemble sur notre forum, sur mon téléphone, avec le lecteur multimédia développé :

et réduit :

5 « J'aime »

De plus, les vidéos ne reprennent pas leur lecture lorsque je change leur position.

Si vous parlez de vidéos YouTube, consultez mon message au-dessus du vôtre et utilisez le code iframe, vous n’aurez pas ce problème.

Puis-je l’essayer sur votre site ?

Bien sûr, voici un post avec une intégration YouTube via iframe
https://unstuckpolitics.com/t/new-topic-do-not-read/242/53

1 « J'aime »

Le composant Media Overlay empêchait l’affichage des vidéos provenant de sites comme imgur sur notre forum. Nous avons résolu le problème en supprimant video de la ligne 103, c’est-à-dire en passant de $('iframe, video, .lazyYT', $elem) à $('iframe, .lazyYT', $elem)

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

Désormais, les vidéos imgur fonctionnent à nouveau, et la superposition fonctionne toujours avec les iframes et les lazyYTs.

2 « J'aime »

Pour les personnes intéressées par cette fonctionnalité, iOS Safari et Firefox le font nativement, tandis que Chrome prévoit de le faire dans ses prochaines versions.

3 « J'aime »

Ne prévoient-ils pas de le publier dans Google Chrome 82 ? De plus, est-il disponible dans l’un des canaux internes de Google Chrome ?

1 « J'aime »