seenthis / seenthis_squelettes

plugin "squelettes" de seenthis
11 stars 6 forks source link

reconnaître les .ogg et de leur associer un player, comme pour les mp3 #148

Closed Fil closed 7 years ago

Fil commented 8 years ago

suggestion d'@intempestive http://seenthis.net/messages/481627#message481628

brunob commented 7 years ago

J'ai envoyé quelques correctifs dans le plugin soundmanager pour qu'il prenne en charge les fichiers ogg, cf http://zone.spip.org/trac/spip-zone/changeset?reponame=&new=100485%40_plugins_%2Fsoundmanager&old=99929%40_plugins_%2Fsoundmanager

Avec quelques modifs locales sur autoembed et le script seenthis.js j'obtiens bien un player pour les liens ogg, mais ça n'est pas encore satisfaisant amha. Sur les 5 urls que je teste, seules 2 fonctionnent avec le player cf :

http://autodefensepopulaire.net/IMG/ogg/plateau_vendredi15_30min.ogg / ko http://freshly-ground.com/data/audio/sm2/20130320%20-%20Po%27ipu%20Beach%20Waves.ogg / ok https://upload.wikimedia.org/wikipedia/commons/1/1d/Demo_chorus.ogg / ok https://archive.org/download/SDR028/SDR028_06_Telomelo.ogg / ok http://jplayer.org/audio/ogg/Miaow-01-Tempered-song.ogg /ko

La différence semble venir du content type déclaré pour chaque fichier application/ogg ou audio/ogg, étonnamment ce sont les fichiers application/ogg qui fonctionnent...

brunob commented 7 years ago

Les modifs locales que j'hésite à envoyer vu le résultat :

Index: autoembed.php
===================================================================
--- autoembed.php   (révision 96495)
+++ autoembed.php   (copie de travail)
@@ -102,6 +102,10 @@
            $html = str_replace('{dewplayer}', $url_dewplayer, $html);
            if ($html) $code_ae = "<div class='oembed-container'>$html</div>";
        }
+       else if (preg_match(",^https?://[^\"\'\`\<\>\@\*\$]*?\.|ogg(\?.*)?$,i", $url)) {
+           $html = "<div class='audio'><audio controls><source src='$url' rel='enclosure'></audio></div>";
+           if ($html) $code_ae = "<div class='oembed-container'>$html</div>";
+       }
        else {
            require_once "AutoEmbed.class.php";
            $AE = new AutoEmbed();
diff --git a/javascript/seenthis/seenthis.js b/javascript/seenthis/seenthis.js
index 60f12ae..60f8ce9 100644
--- a/javascript/seenthis/seenthis.js
+++ b/javascript/seenthis/seenthis.js
@@ -34,7 +34,7 @@ function switch_comments(id_me) {
 $.fn.soundmanager = function () {
    return $(this)
        .each(function () {
-           var url_son = $(this).find('source[type="audio/mpeg"]').attr('src');
+           var url_son = $(this).find('source').attr('src');
            $(this).html('<div class="lecture"><button class="play">play</button></div><div class="controles"><div class="track sans_titre"><a title="Ecouter" rel="enclosure" href="' + url_son + '"><span class="fn"> </span></a></div><div class="progress_bar"><div class="position"></div><div class="loading"></div></div><div class="lesinfos"><div class="time"></div><div class="duration"></div></div></div><br style="clear:both;">');
            sound_manager_init();
        });
Fil commented 7 years ago

tu peux le mettre en test et puis on voit si ça pête autre chose :)

brunob commented 7 years ago

Done pour autoembed : http://zone.spip.org/trac/spip-zone/changeset/100487

brunob commented 7 years ago

Done pour seenthis.js avec #169 :)

Testé ici avec succès : https://seenthis.net/messages/224091#message541970

brunob commented 7 years ago

Amha on peut fermer le ticket maintenant, mais il serait intéressant d'en créer un autre spécifique à l'amélioration de la prise en charge des ogg par le plugin soundmanager (on devrait plutôt utiliser mejs fourni par le plugin medias quand on passera en 3.x).