Jump to content
  • 0

Jouer un son dans un script


Question

Bonjour,

Est-il possible de lancer la lecture du son contenu dans une rubrique conteneur dans un script ?

 

#Gestion verrou

Si [ PARTIE::verrou=1 ]

Définir rubrique [ PARTIE::verrou; 0 ]

Lire AVPlayer [ Rubrique: PARTIE::Conteneur ] 

Sinon

Définir rubrique [ PARTIE::verrou; 1 ]
Lire AVPlayer [ Rubrique: PARTIE::Conteneur ]

Fin de si

Chez moi, je n'obtiens aucun son !

 

FC

 

 

Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Bonjour,

Il y a 2 heures, sapadi a dit :

Est-il possible de lancer la lecture du son contenu dans une rubrique conteneur dans un script ?

Oui, si le fichier est l'un des formats audio AIFF (.aif, .aiff), audio MP3 (.mp3), audio MPEG-4 (.m4a), audio Sun (.au), audio WAVE (.wav), Audio Windows Media (.wma) … mais , et seulement sous iOS…

AVPlayer.png.5609fabce7dd5791299449cd7c16a335.png

Link to post
Share on other sites
  • 0

Merci Clément.

Excuse-moi de ne pas avoir lu suffisamment la doc … tu n’as pas concocté un petit AppleScript pour pallier ce manque ?…ça m’étonne…

Link to post
Share on other sites
  • 0
Il y a 7 heures, sapadi a dit :

un petit AppleScript pour pallier ce manque ?

Voici une piste :

do shell script "afplay '/Chemin/Vers/Fichier/Audio.aiff'"

:)

Link to post
Share on other sites
  • 0
Il y a 17 heures, sapadi a dit :

lancer la lecture du son contenu dans une rubrique conteneur dans un script

Bonjour,

J'ai peur d'apporter une réponse trop simple, mais de fait, je lance de la musique avec un simple Activer modèle. Dans le modèle en question se trouve une seule et unique rubrique conteneur, avec l'option Contenu interactif + Démarrer la lecture automatiquement.

Je viens de tester : je peux ouvrir ce modèle dans une nouvelle fenêtre et continuer d'utiliser ma fenêtre principale, la musique continue.

Cette piste t'aide-t-elle, @sapadi ?

Bon samedi,

Jérémie

Link to post
Share on other sites
  • 0

Bonjour,

Comme FredoMkb, je ne sais pas depuis AS lire le contenu audio d'une rubrique conteneur… Mes maigres essais ne cessent de me renvoyer un lassant et laconique «data » sans aucune spécification particulière de la classe :(.

L'une des solutions envisageables est donc de cibler un fichier externe à FMP et titiller la seule commande 'interne' dispo : afplay. L'autre solution serait d'utiliser le framework "AVFoundation" ce qui permettrait de gagner en souplesse sur l'exécution du son.

J'ai un peu étoffé  la commande avec un contrôle du 'mute' du volume système au cas où celui-ci soit coupé/muet, imposé un volume minimum au cas où celui-ci serait inférieur à un volume sonore donné et  demandé à la commande afplay de ne s'exécuter que si le le fichier audio cible existe. Dans la foulée on 'stoppe/kill' tout les sons en cours d’exécution. S'il le fichier n'existe pas ou a été déplacé, on en notifie l'utilisateur.

 

# 
# 
Définir variable [ $_filePath_os ; Valeur: "/System/Library/Frameworks/Social.framework/XPCServices/com.apple.twitter.xpc/Contents/Resources/TwitterSent.caf" ] 
#
Définir variable [ $_cmd ; Valeur: "set fPath to " & Citation ( $_filePath_os ) & "¶
¶
set sysWideVol to get volume settings¶
if sysWideVol's output muted is true then set volume without output muted¶
if sysWideVol's output volume < 70 then set volume output volume 70¶
¶
do shell script \"FILE=\" & quoted form of fPath & \"; if [[ -f $FILE ]]; then killall afplay; afplay  -q 1 -t 0.5067 -v 2 \\\"$FILE\\\" &> /dev/null; else echo -1; fi\"¶
if the result as integer is equal to -1 then display notification \"Fichier inexistant ou déplacé.\" with title \"Erreur\" sound name \"Purr\"" ]
# 
Exécuter AppleScript [ $_cmd ] 

les options de la commande afplay

{-v | --volume} set the volume for playback of the file
{ --leaks} run leaks analysis
{-t | --time} play for TIME seconds
{-r | --rate} play at playback rate
{-q | --rQuality} set the quality used for rate-scaled playback (default is 0 - low quality, 1 - high quality)
{-d | --debug} debug print output

Link to post
Share on other sites
  • 0

Merci à tous !

Je vois ça la semaine prochaine…et je vous en parle…

Francis

Link to post
Share on other sites
  • 0

Merci, pas essayé encore mais ça devrai me servir 

J'aime bien aussi la solution de Jérémie

Link to post
Share on other sites
  • 0

Ma solution est beaucoup moins élaborée : j'active un modèle contenant un conteneur à lecture automatique et hop, ma petite chanson se lance…

Link to post
Share on other sites
  • 0

@sapadisi tu veux jouer des sons plus longs, pense à rallonger la valeur de la durée de l'option -t ou tout simplement supprimer -t et sa valeur. Pour chercher la durée d'un son, utilise la commande afinfo 'chemin/menant/a/audiofile.suffix' qui te retournera entre autre l' "estimated duration" et bien d'autres infos… les commandes terminal relatives aux audio files sont:

afclip, afconvert, afhash, afida, afinfo, afplay.

Jouer des sons depuis Exécuter Applescript() à l'avantage de pouvoir jouer des formats que FMP ne prend pas en charge (ex. les .caf  (core audio file, .m4r (sons pour iphone/pad/pod, .snd, .au etc…) , mais à le désagréable inconvénient de bloquer ton application FMP et de te faire poireauter jusqu'à la fin du son.

Pour remédier à ce blocage, toujours en utilisant  Exc. Applescript(),  amuses toi à lire ton son le biais de le classe "AVAudioPlayer" du framework "AVFoundation"

Définir variable [ $_path2AudioFile; Valeur :"/Library/Application Support/GarageBand/Magic GarageBand/06. Funk.
mwand/Output/Output.caf" // par exemple ]

Définir variable [ $_cmd; Valeur :
"use framework " & Citation ( "Foundation" ) & "¶
use framework " & Citation ("AVFoundation" ) & "¶
use scripting additions¶
¶
set thePath to " & Citation ( $_path2AudioFile ) & "¶
¶
set curApp to current application¶
set theURL to curApp's |NSURL|'s fileURLWithPath:thePath¶
¶
set {myNSURL, nsError} to curApp's |NSURL|'s URLByResolvingAliasFileAtURL:theURL options:0 |error|:(reference)¶
if ((myNSURL's checkResourceIsReachableAndReturnError:(missing value)) as boolean is false) then¶
    beep¶
    error \"Chemin non valide:\" & return & thePath number -2700¶
end if¶
¶
set {thePlayer, theError} to curApp's AVAudioPlayer's alloc()'s initWithContentsOfURL:theURL |error|:(reference)¶
thePlayer's prepareToPlay()¶
thePlayer's setNumberOfLoops:0¶
thePlayer's setEnableRate:true¶
thePlayer's setRate:1¶
thePlayer's setVolume:1¶
thePlayer's setPan:0¶
thePlayer's play()" ]

Exécuter AppleScript [ AppleScript calculé : $_cmd ]

Une fois le son démarré du peux continuer à utiliser FMP comme bon te semble… (encore faut-il pouvoir l'arrêter maintenant, mais c'est une autre histoire)

Pour ceux intéressés par tout les sons dans les entrailles de leur Mac, entrez le commande dans un terminal et avec un peu de patience, retrouvez sur le Desktop un fichier texte contenant leur chemin.

find -E / -type f -regex ".*\.(aac|adts|ac3|aif|aiff|aifc|caf|mp3|mp4|m4a|m4r|snd|au|sd2|wav)$" 2> /dev/null | sort > /Users/$USER/Desktop/~paths2AudioFiles.txt

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...