IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Lire un fichier audio.


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Par défaut Lire un fichier audio.
    Bonjour à tous,

    Etant totalement débutant en la matière, et ayant cherché en vain sur le net, je me permet de venir implorer votre soutiens dans ce forum. !
    Voici donc l'objet de ma requette :

    Je voudrais réaliser un petit programme sous AppleScript donc, qui affiche une fenêtre dans laquelle se trouve des champs à choix multiples et déroulants menant à un fichier qui lorsque l'on le sélectionne,
    joue un son ou une musique faisant référence à son descriptif, et ce, sans lancer de Player tierce de type iTunes ou QuickTime ou autre, juste on clic sur le choix et le son se joue.

    Info : le son jouer sera soit en WAV, MP3, AIFF, etc ...

    - Ma question : Est-ce possible de ne serais-ce que jouer un son sans ouvrir de Player tierce avec une commande AppleScript ou venant du Shell ?

    Mes recherches mon mené vers "afplay", mais sans grand résultats, et sans grande compréhension je l'avoue !

    Merci d'avance de vos informations sur le sujet

    Cordialement.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Yknowmisterz,
    Pour écouter un morceau de ficher audio, quelque soit le langage (Apple script ou autre), il faut toujours lancer un utilitaire.

    Celui que tu as choisi, afplay sous shell, ne déroge pas à la règle : c'est un utilitaire qu'il faut lancer, comme iTunes ou tout autre.
    Cependant, afplay présente 2 avantages : il peut être lancé en Shell (via le Terminal) et il n'a pas d'interface utilisateur ce qui le rend transparent pour l'utilisateur.

    Il est aussi possible de lancer la fonction standard du Bureau "coup d'œil" qui permet de visualiser n'importe quel format de fichier, en lieu et place de afplay.
    Coup d'œil est ce qui se passe lorsque l'utilisateur sélectionne un fichier sur le Finder et appuie sur la barre d'espace.

    Coup d'Oeil, contrairement à afplay, est visible par l'utilisateur, mais présente l'avantage de permettre l'interruption de la musique sans être tenu d'attendre la fin du morceau comme avec afplay. Mais il implique que le bouton play/stop soit manipulé par l'utilisateur.
    Donc c'est une question de choix !! A toi de voir.

    Quant au dialogue de sélection, Applescript est très limité en matière d'interface utilisateur (pas de menus déroulants, radio boutons, etc...), mais une instruction "choose file" fait l'affaire pour sélectionner un fichier dans une arborescence de dossiers.
    C'est donc cette instruction que j'utilise dans le script ci-dessous :
    Version avec afplay :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Fichier to choose file "Selectionner un fchier Audio"
    do shell script "afplay " & (quoted form of POSIX path of Fichier)
    ...et voici une version avec coup d'œil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Fichier to choose file "Selectionner un fchier Audio"
    do shell script "qlmanage -p " & (quoted form of POSIX path of Fichier)
    Cordialement

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Par défaut
    Merci beaucoup PBELL !

    Cela ma mis su la bonne voie, et je préfère la transparence de "afplay" à l'ouverture d'un player tierce et surtout visuel et nécessitant une intervention supplémentaire d'un utilisateur.

    A propos de la non-possibilité d'intervenir sur l'arrêt du player "afplay" une fois le fichier audio en lecture, n'y aurais t'il pas moyen de tout de même le stopper à tout moment avec une commande du shell puisque si j'ai bien compris, c'est au shell que l'on fais appel pour pouvoir lancer cette commande, n'y aurais-t'il pas un "exit", ou "stop" ?

    Autrement, pour info', j'en suis là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    display dialog "test d'écoute avec un bouton" buttons {"écouter le son 1", "écouter le son 2", "écouter le son 3"} default button 3
    set the button_pressed to the button returned of the result
    if the button_pressed is "écouter le son 1" then
    do shell script "afplay " & (quoted form of POSIX path of "/chemin/de/mon/Testaudio1.mp3")
    else if the button_pressed is "écouter le son 2" then
    do shell script "afplay " & (quoted form of POSIX path of "/chemin/de/mon/Testaudio2.mp3")
    else
    do shell script "afplay " & (quoted form of POSIX path of "/chemin/de/mon/Testaudio3.mp3")
    end if
    En revanche, j'aimerai savoir si il y a une possibilité de laisser la fenêtre ouverte après une sélection de façon à pouvoir faire d'autres choix sans être obliger de relancer le script. Cela va impliquer également le fait de pouvoir la fermer à un moment donné !

    ...mais bon je vais pas embêter sans arrêt non plus, je cherche un peux de mon côté et éventuellement je reviens !

    Merci encore pour cette réactivité, je ne m'attendais pas à avoir une réponse si rapide.

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour yknowmisterz,


    Je n'avais pas compris que ta sélection était limitée à des fichiers prédéfinis, je croyais que cela pouvait être n'importe quel fichier.


    Si c'est une liste prédéfinie, alors tu peux utiliser l'instruction AS "choose from list". L'avantage est double :
    - Tu n'es pas limité par le nombre de boutons (maxi 3 dans les dialogues standard
    - Tu as toujours les boutons "Annuler" et "OK" qui vont nous permettre de boucler sans avoir à relancer le script. (j'ai changé leurs noms en "Quitter" et "Ecouter")


    J'ai légèrement modifié ton script pour le rendre plus lisible :
    - utilisation d'indices dans les listes (tu peux donc avoir de 1 à N sons prédéfinis !)
    - les chemins vers les fichiers en format "Finder" sont chemin:de:mon:fichier. Ils se convertissent via "quoted form of posix path". Si tes chemins sont déjà au format Unix (posix) avec des "/", il n'est pas necessaire de chercher à les convertir de nouveau et un "quoted form" suffit.
    - J'ai ajouté la boucle pour rejouer un autre morceau jusqu'à ce que l'utilisateur clique sur "Annuler" (on sort alors du programme via l'instruction return)
    - La gestion de la liste des sons/fichiers a été améliorée avec une liste de records avec les titres (pour la liste utilisateur) et les valeurs correspondantes des fichiers. Cela te permet aussi d'aborder la gestion des listes d'objets dans AS qui est particulièrement puissante.

    Voilà le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    -- Les sons sont sous la forme Fx avec le chemin du fichier 
    -- et Tx avec le titre pour la liste de sélection
    set F1 to "/chemin/de/mon/Testaudio1.mp3"
    set T1 to "Son N° 1"
    set F2 to "/chemin/de/mon/Testaudio2.mp3"
    set T2 to "Son N° 2"
    set F3 to "/chemin/de/mon/Testaudio3.mp3"
    set T3 to "Son N° 3"
    set F4 to "/chemin/de/mon/Testaudio4.mp3"
    set T4 to "mon super son"
    
    
    set Titres to {T1, T2, T3, T4} -- liste des titres
    set Fichiers to {F1, F2, F3, F4}
    
    
    repeat -- boucle sans fin (l'utilisateur ne peut sortir qu'en cliquant Annuler)
        
        set Choix to choose from list Titres with title "Ecouter des sons" with prompt "Sélectionner un son pour l'écouter" OK button name "Ecouter" cancel button name "Quitter"
        if the result is false then return -- si l'utilisateur a cliqué sur Quitter
        
        set Mon_titre to item 1 of Choix
        repeat with I from 1 to count of Titres-- boucle pour trouver le n° de l'item sélectionné
            if Mon_titre is item I of Titres then set Numero to I
        end repeat
        do shell script "afplay " & (quoted form of (item Numero of Fichiers))
        
    end repeat
    Cordialement

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Par défaut
    Bonjour PBELL,

    Quel investissement !

    Merci beaucoup de toutes tes lumières, ça me donne du grain à moudre !
    Et en plus de ça tu me refais le script nikel... bah !... merci !

    Il va me falloir un peux de temps pour décortiquer tout ça étant novice, mais cela est très intéressant...

    Est-ce que l'on peut également inclure dans le programme la source des fichiers audio, afin de se débarrasser d'un chemin à définir, et compiler le tout pour au final n'avoir QUE le programme avec les sons inclus ?

    ...A bientôt !

  6. #6
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Citation Envoyé par yknowmisterz Voir le message
    Bonjour PBELL,
    Est-ce que l'on peut également inclure dans le programme la source des fichiers audio, afin de se débarrasser d'un chemin à définir, et compiler le tout pour au final n'avoir QUE le programme avec les sons inclus ?
    Bonsoir,
    Bien sûr, tu peux mettre en dur le dossier qui contient les sons. il suffit dans le déclaration de variable de séparer les 2 comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set Chemin to "chemin/de/mon/"
    set F1 to "Testaudio1.mp3"
    set T1 to "Son N° 1"
    set F2 to "Testaudio2.mp3"
    set T2 to "Son N° 2"
    ..et puis, lors de l'appel du fichier, de re-concaténer les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do shell script "afplay " & (quoted form of (Chemin & (item Numero of Fichiers)))
    On peut aussi demander à l'utilisateur de choisir le dossier et y prendre tous les fichiers mp3 pour les proposer en liste... Bref, la limite est celle-de ton imagination (enfin presque !)

    Cordialement

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Par défaut
    Bonsoir PBELL,

    Je pense m'être mal exprimé à propos de l'intégration des SOURCES, je parlais de pouvoir intégrer les fichiers audio DANS le programme, puis de le compiler ainsi, lors de l'appel d'un son, le programme sera lancer à partir d'une autre machine sans avoir besoins du dossier de référence ou les sons son stoqués, ils sont déjà intégrés au script ...

    Malgré toute mon imagination, j'ai des doutes quand à cette faisabilité avec AppleScript ....!?

    Va p'têtre falloir passer à plus lourd là !? xcode ?

    Mais là, c'est une autre histoire !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Par défaut
    Oups !

    j'ai chercher un peux, et finalement, on peut tout à fais intégrer au script le fichier audio source, il suffit d'enregistrer le script sous forme ".app", puis d'afficher le contenu du paquet, et de déposer dans "contents/resources/" le fichier audio, et simplement de glisser et déposer le fichier ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do shell script "afplay " & (quoted form of POSIX path of "ici")
    ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do shell script "afplay " & (quoted form of POSIX path of "nomdemonappli.app/Contents/Resources/nomdemonfichier.mp3")
    Je m'étonne tout seul !

Discussions similaires

  1. Lire un fichier audio (VB.Net)
    Par remilafouine dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 23/10/2007, 11h46
  2. Managed DirectX - Lire un fichier audio
    Par Herwin78800 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/08/2007, 19h02
  3. Créer logiciel pour lire des fichiers audios (mp3 et compagnie)
    Par valebl dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 30/05/2007, 11h12
  4. connexion adsl sous linux et lire des fichiers audio video
    Par Norouldarayni dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 14/04/2007, 06h20
  5. fonction pour lire les fichier audio
    Par tarek007 dans le forum Multimédia
    Réponses: 1
    Dernier message: 11/05/2005, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo