3 votes

Notifications de nouvelles chansons iTunes : comment les désactiver lors de l'utilisation du mini lecteur ?

J'aime vraiment que iTunes (Yosemite, iTunes 12) affiche des notifications du système d'exploitation lorsque une nouvelle chanson est diffusée. Mais lorsque j'utilise iTunes en mode mini lecteur, je n'ai pas besoin de ces notifications. Est-il possible de configurer iTunes pour afficher uniquement les notifications du système d'exploitation lorsque l'application est en mode fenêtre principale ?

5voto

markhunte Points 11634

Vous pouvez l'activer et le désactiver manuellement dans les préférences du système de notifications.

entrer la description de l'image ici


Mise à jour de cette réponse :

Cela fonctionne assez bien sur mon Mac. Mais ce n'est pas localisé et c'est vraiment un script rapide mis en place comme preuve de concept.. ( c'est la clause de non-responsabilité )

L'idée est de placer ce script dans le menu AppleScript et de l'exécuter lorsque vous voulez basculer le lecteur iTunes du principal au lecteur mini.

Le script fera la bascule pour vous, vérifiera quelle fenêtre est active, puis ouvrira les préférences du système pour essayer de trouver les notifications iTunes et passer soit à "Aucun" soit à "Bannières" en fonction. J'ai complètement ignoré les "Alertes" dans cela parce que je suis sûr que la plupart des gens ne les auraient pas sélectionnées !.

       propriété delayTimeMax : 2
propriété windowTitle : ""
définir windowTitle à ""
propriété delayCounter : 0
définir delayCounter à 0
propriété theList : ""
dire à l'application "Événements système"
    dire à l'application "iTunes" d'activer
    retard 1

    keystroke "m" en utilisant {command down, shift down} --//Basculer la fenêtre iTunes

    my windowTheTitle() --//-- essayer d'obtenir le titre de la fenêtre

end tell

dire à l'application "Événements système"
    si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons
    définir delayCounter à 0

    my openSystemEvents() --//-- essayer d'ouvrir la fenêtre des préférences système  

    si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons
    définir delayCounter à 0

    dire à l'application du processus "Préférences système"

        définir cet_élément à ""
        my findTable() --//-- essayer de trouver la liste d'applications dans la fenêtre des préférences système 

        si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons
        définir delayCounter à 0

        définir compteur à 0 --// le compteur va s'incrémenter pour chaque ligne représentant une application

        --// trouver le bon en utilisant son texte statique qui sera le nom de l'application
        répéter avec i de 1 à nombre d'éléments dans theList
            définir cet_élément à élément i de theList
            définir compteur à compteur + 1
            essayer
                définir laValeur à valeur du texte statique de cet_élément
            fin essayer
            si élément 1 de laValeur est égal à "iTunes" alors
                quitter répéter --// trouvé, quitter la répétition
            fin si
        fin répéter

        sélectionner ligne compteur de tableau 1 de zone de défilement 1 de fenêtre "Notifications" --// sélectionner l'application dans le tableau

        définir leGroupeRadio à groupe radio 1 de groupe 1 de fenêtre "Notifications" --// les boutons radio pour le type de notification
        si windowTitle est "MiniPlayer" alors
            --// le mini lecteur est actif
            définir theVal à valeur du bouton radio "Aucun" de groupe radio 1 de groupe 1 de fenêtre "Notifications"
            --// nous ne voulons pas cliquer sur le bouton s'il est déjà sélectionné. Ce qui peut désélectionner ou non tous. (peut-être un bug)
            si theVal est 0 alors
                --//sélectionner aucune alerte
                cliquer sur le bouton radio "Aucun" de groupe radio 1 de groupe 1 de fenêtre "Notifications"
            fin si
        sinon
            --// la fenêtre PRINCIPALE est active
            définir theVal à valeur du bouton radio "Bannières" de groupe radio 1 de groupe 1 de fenêtre "Notifications"
            si theVal est 0 alors
                --// nous ne voulons pas cliquer sur le bouton s'il est déjà sélectionné. Ce qui peut désélectionner ou non tous. (peut-être un bug)
                cliquer sur le bouton radio "Bannières" de groupe radio 1 de groupe 1 de fenêtre "Notifications"
            fin si
        fin si
    end tell
end tell
dire à l'application "Préférences système" de quitter

on windowTheTitle()
    dire à l'application "Événements système"
        essayer

            dire à l'application du processus "iTunes" de définir windowTitle à obtenir le titre de la fenêtre 1 --//Obtenir le titre de la fenêtre : iTunes ou MiniPlayer
        en cas d'erreur
            définir delayCounter à delayCounter + 1
            si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons

            retard 1
            my windowTheTitle()
        fin essayer
    end tell
end windowTheTitle
on openSystemEvents()
    dire à l'application "Événements système"
        essayer

            dire à l'application "Préférences système"
                activer
                retard 1
                définir le panneau actuel à identifiant du panneau "com.apple.preference.notifications" --//  Ouvrir Événements système dans les préférences de notifications

                si l'identifiant du panneau actuel n'est pas "com.apple.preference.notifications" alors
                    définir delayCounter à delayCounter + 1
                    si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons

                    retard 1
                    my openSystemEvents()
                fin si

            end tell
        en cas d'erreur
            définir delayCounter à delayCounter + 1
            si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons

            retard 1
            my openSystemEvents()
        fin essayer
    end tell
end openSystemEvents
on findTable()
    dire à l'application "Événements système"
        essayer

            dire à l'application du processus "Préférences système"
                définir theList à (obtenir groupe 1 de élément d'interface utilisateur 1 de chaque ligne de tableau 1 de zone de défilement 1 de fenêtre "Notifications") -- obtenir tous les groupes radio : l'icône et le texte du groupe d'applications dans le tableau
            end tell
        en cas d'erreur
            définir delayCounter à delayCounter + 1
            si delayCounter > delayTimeMax alors retourner --//-- trop d'essais, arrêtons

            retard 1
            my findTable()
        fin essayer
    end tell
end findTable

Comme je l'ai dit, preuve de concept. Vous pouvez probablement le mettre dans un service Automator et l'utiliser avec une touche de raccourci.

Notez également : selon votre système, vous devrez peut-être ajouter des délais supplémentaires pour attendre que l'interface utilisateur rattrape son retard


Mise à jour 2

En fait, cela fonctionne mieux en tant que service Automator avec une touche de raccourci.

Dans Automator, utilisez une action Exécuter un script Apple et remplacez son code modèle par celui ci-dessus..

Définissez l'entrée sur non et N'importe quelle application. Enregistrez-le.

Ouvrez les préférences du raccourci. Trouvez votre service dans les Services et ajoutez un raccourci.

c'est fait.

entrer la description de l'image ici


entrer la description de l'image ici


entrer la description de l'image ici

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X