|
Pas d' ECM, car je n'ai rien trouvé sur le CTAN qui n'exige pas un lecteur flash pour le son ou acrobat-reader (qui l'a retiré de Linux depuis longtemps).(media9 et movie15) Okukar ou Evince pourrait peut-être lire un tel fichier, mais rien pour le produire à ma connaissance (media9 et movie15) Je crains qu'il n'y ait pas de solution libre, donc de devoir me passer de LaTeX. Cette question est donc une bouteille à la mer. |
|
Comme mentionné dans ma réponse avant-hier, le support des feux formats FLV/FLA/… est retiré de la spécification PDF en 2019 et plus aucune visionneuse ne le prend plus en charge depuis 2021. Cela rend obsolète les extensions (et programmes comme XPress par exemple) qui s’appuyaient sur cette possibilité, sauf si on lit le document avec des lecteurs PDF spécifiques dans une version donnée (et certainement pas corrigée au regard de certaines failles de sécurité). \documentclass{article} \usepackage{media9} %? \mediarendition{} \renditionactionplay{} \renditionactionstop{} \usepackage{xkeyval} % \define@boolkey{}[]{}[]{} \presetkeys{}{}{} \setkeys{}{} \ifKV@…@… \usepackage{zref-abspage} % \zref@labelbyprops{}{abspage} \makeatletter \define@boolkey{simplemedia}{autoplay}{\def\simplemediaautoplay{#1}} \define@boolkey{simplemedia}{showGUI}{\def\simplemediashowGUI{#1}} \presetkeys{simplemedia}{autoplay=true,showGUI=true}{} \ExplSyntaxOn \newcommand\simplemedia[4][]{% \simplemedia[<options>]{<poster or text>}{<media file>}{MIME type} \setkeys{simplemedia}{#1}% \leavevmode \pbs_pdfobj:nnn{}{fstream}{{}{#3}} \pbs_pdfobj:nnn{}{dict}{ /Type/Filespec/F~(#3)/UF~(#3) /EF~<</F~\pbs_pdflastobj:>> } \pbs_pdfobj:nnn{}{dict}{ /CT~(#4)% content type (p.764, table 9.9) /D~\pbs_pdflastobj:% full file specification (p.764, table 9.9) /N~(Media~clip~from~#3)% name of media clip (p. 764, table 9.8) /P~<</TF (TEMPACCESS)>>% media permissions (p.764, table 9.9) /S~/MCD% subtype media-clip-data (p.764, table 9.8) } \pbs_pdfobj:nnn{}{dict}{ /C~\pbs_pdflastobj:% media clip dictionary (p.762, table 9.6) /N~(RenditionFrom#3)% name of rendition (p.759, table 9.1) /P~<<% media play parameters dictionary (p.762, table 9.6) /BE~<</C~\simplemediashowGUI~%C: display a player-specific controller UI (p.769, table 9.15) /A~true>>~%A: automatically play when activated (p.770, table 9.15) %/PL~<</A~[% arrray of media player info objects (p.777) %<</PID~<</U~(vnd.adobe.swname:ADBE_MCI)~>>~>>~% PID: software identifier object (p.779) %<</PID~<</U~(vnd.adobe.swname:MSFT_WindowsMediaPlayer)~OS[(win16)~(win32)~(win9x)~(winnt)~(wince)]>>~>>~%/OS operating system (p.780) %]~>> ~>> /S~/MR% subtype of rendition (p.759, table 9.1) } \tl_set:Nx\mediarendition{\pbs_pdflastobj:} \pbs_pdfobj:nnn{}{dict}{}% obj-number created for later use \tl_set:Nx\renditionactionplay{\pbs_pdflastobj:}% \pbs_pdfobj:nnn{}{dict}{}% obj-number created for later use \tl_set:Nx\renditionactionstop{\pbs_pdflastobj:}% \hbox_set:Nn\l_tmpa_box{#2}% size of annotation \tl_set:Nx\l_box_wd_tl{\dim_use:N\box_wd:N\l_tmpa_box} \tl_set:Nx\l_box_ht_tl{\dim_use:N\box_ht:N\l_tmpa_box} \tl_set:Nx\l_box_dp_tl{\dim_use:N\box_dp:N\l_tmpa_box} \pbs_pdfxform:nnnnn{1}{1}{}{}{\l_tmpa_box} \tl_set:Nx\l_simplem_current_page_tl{\zref@extract{simplem@\int_use:N\g_simplem_id_int}{abspage}} \pbs_pdfannot:nnnn{\l_box_wd_tl}{\l_box_ht_tl}{\l_box_dp_tl}{ /T~(AnnotationFrom#3)~% title of screen annotation (p.640, table 8.38) /Subtype~/Screen~% Subtype Sreen (p.616, table 8.20 ; p.640, table 8.38) /BS~<</W~1/S/S>>% Borderstyle /C~[0.039216~0.039216~0.039216]% color used background, title bar, border (p.607, table 8.15) /Contents~(EmbeddedAudiofile#3)% Text to be displayed (p.606, table 8.15) /NM~(audioscreenannot:#3)% annotation name (p.606, table 8.15) /AP~<</N~\pbs_pdflastxform:>>% appearance dictionary (p.606, table 8.15) /F~4~%Annotation flag (p.606, table 8.15 ; p.608, table 8.16) /A~\renditionactionplay~% Action to be performed (p.640) % autoplay is realised by "additional action" (p.640) % PageOpen (PO) -> play "Play Rendition" % PageClose (PC) -> play "Stop Rendition" (p.650) /AA~<<\ifKV@simplemedia@autoplay~/PO~\renditionactionplay~\fi~/PC~\renditionactionstop~>>~% \int_compare:nT{\l_simplem_current_page_tl>0}{ /P~\exp_args:Ne\pdf_pageobject_ref:n{\l_simplem_current_page_tl} } /CA~1%constant opacity value (p.618) } \pbs_pdfobj:nnn{\renditionactionplay}{dict}{% /R~\mediarendition% /S~/Rendition /OP~4%operation to perform (p.669): 4 = play rendition specified by R /AN~\pbs_pdflastann:% } \pbs_pdfobj:nnn{\renditionactionstop}{dict}{% /R~\mediarendition% /S~/Rendition /OP~1%operation to perform (p.669): 1 = stop rendition specified by R /AN~\pbs_pdflastann:% } \phantom{#2} \zref@labelbyprops{simplem@\int_use:N\g_simplem_id_int}{abspage} \int_gincr:N\g_simplem_id_int }% all pp.refs relate to: "Adobe PDF Reference, 6th edition, November 2006" @ https://ghostscript.com/~robin/pdf_reference17.pdf \int_new:N\g_simplem_id_int \ExplSyntaxOff \makeatother \begin{document} \simplemedia{% \includegraphics[width=.96\textwidth,]{fichier-vignette-sans-extension}% }{fichier-audio.extension}{audio/soustype} \end{document} J’ai testé, en lisant le PDF généré via Firefox et ça marche chez moi. :) «introduite dans la section 2.5 de la version 2.0 de 2020». Si je comprends bien, il s'agit de la version 2.0 du format de fichier pdf. Dans ce cas comment générer (ou convertir) un fichier produit par XeLaTeX (ou autre)? Il me semble avoir trouvé ce moyen, mais je ne l'ai pas retrouvé. Dans ce cas votre information semble être vraiment la réponse à ma question, et l'appel sur commande à un lecteur média externe pour différents fichiers son est exactement ce que je cherche. J'espère trouver bientôt le temps d'explorer, de comprendre son utilisation et de tester ce script. Grand merci Gil Cot Exactement, la seconde grande version du standard/spécification adopté comme ISO 32000-2:2017 puis ISO 32000-2:2020 (tandis que ISO 32000-1:2008 couvre jusqu’à la version 1.7L3) Le patch proposé par Fritz, et que j’ai reposé légèrement édité, injecte directement les codes d’annotation dans le PDF généré donc ça devrait passer pour n’importe quel moteur (j’ai fait mon test avec pdfLaTeX par exemple, qui génère du PDF 1.7… mais ça semble suffire ici) |
|
En fait, le support du format Flash est supprimé du format PDF depuis fin 2020 (pas que pour Linux, plus aucun lecteur sur aucune plateforme depuis lors ne gère ce format). Les extensions movie15 puis media9 ont exploité cette capacité en injectant un code Flash Player pour lire les flux supportés joints aux PDF. Je ne l’ai pas testé par moi même, mais si tu as PDFPC installé et testé fonctionnel, alors tu peux regarder l’extension pdfpc + pdfpc-movie ;) \documentclass{article} \usepackage{pdfpc-movie} \begin{document} \pdfpcmovie[width=.96\textwidth,]{% \includegraphics[width=.96\textwidth,]{fichier-vignette-sans-extension}% }{fichier-video-sans-image.extension} \end{document} Par contre, il faudra que ton audio soit dans un conteneur AV car ça gère de base de la vidéo (formats Si tu veux faire la même chose directement, en lançant ton lecteur configuré par défaut (mplayer/mpv/vlc/smplayer/parole/totem/etc.), avec Hyper Ref c’est assez simple : \documentclass{article} \usepackage{hyperref} \begin{document} \href{run:./fichier-video-ou-audio.extension}{% \includegraphics[width=.99\textwidth,]{fichier-vignette-sans-extension}% } \end{document} Ces deux solutions devraient fonctionner avec avec les anciens et futurs lecteurs de PDF ;) Merci Gil Cot. J'ai utilisé autrefois pdfpc pour des présentations avec Beamer. J'ignorai l'existence de pdfpc-movie. Je teste;reste à trouver comment intervenir pour lancer le lecteur (mpv par exemple) et interagir (volume, pause etc.) Salut @joseph-tux. Je pense que la première solution (PDFPC) va fonctionner comme tu en as déjà l’habitude. La seconde solution (lien direct en utilisant HyperRef et le schéma peu connu/courant |

Je pense à la commande \url de l'extension eponyme. Cette commande crée un lien et ouvre si nécessaire le navigateur par défaut.
Par quel mécanisme? Ce mécanisme ne permettrait-il pas d'envisager d'ouvrir un lecteur (mpv par exemple, où un lecteur graphique) sur le lien du fichier son? Je suis trop ignorant et non anglophone pour comprendre le code de l'extension url, et trop vieux pour espérer pouvoir apprendre; je suis plutôt en phase de désapprentissage, mais je résiste ;)