3 votos

Notificaciones de nuevas canciones de iTunes: ¿cómo desactivarlas cuando se utiliza el minirreproductor?

Me gusta mucho que iTunes (Yosemite, iTunes 12) muestre notificaciones del sistema operativo cuando aparece una nueva canción. Pero cuando estoy usando iTunes en modo minirreproductor, no necesito estas notificaciones. ¿Hay alguna forma de hacer que iTunes sólo muestre las notificaciones del SO cuando está en el modo de ventana principal?

5voto

Malik hassan Puntos 16

Puedes activarlo y desactivarlo manualmente en las preferencias del sistema de notificaciones.

enter image description here


Actualización de esta respuesta:

Esto funciona en mi Mac bastante bien. Pero no está localizado y es realmente un rápido script puesto juntos como una prueba de concepto .. ( eso es el descargo de responsabilidad )

La idea es colocar este script en el menú de Applescript y ejecutarlo cuando quieras cambiar el reproductor de iTunes de principal a mini reproductor.

El scripthará la conmutación por usted, compruebe qué ventana está activa y luego abra los prefijos del sistema y busque las notificaciones de iTunes y cambie a "Ninguna" o "Banners" dependiendo. ¡He ignorado por completo las "Alertas" en esto porque estoy seguro de que la mayoría de la gente no tendría que seleccionado!

       property delayTimeMax : 2
property windowTitle : ""
set windowTitle to ""
property delayCounter : 0
set delayCounter to 0
property theList : ""
tell application "System Events"
    tell application "iTunes" to activate
    delay 1

    keystroke "m" using {command down, shift down} --//Toggle the itunes window

    my windowTheTitle() --//-- try and get the window title

end tell

tell application "System Events"
    if delayCounter > delayTimeMax then return --//-- too many trys, lets stop
    set delayCounter to 0

    my openSystemEvents() --//-- try and open the  system  prefs window  

    if delayCounter > delayTimeMax then return --//-- too many trys, lets stop
    set delayCounter to 0

    tell application process "System Preferences"

        set this_item to ""
        my findTable() --//-- try and find the app list in the system  prefs window 

        if delayCounter > delayTimeMax then return --//-- too many trys, lets stop
        set delayCounter to 0

        set counter to 0 --// the counter will increment for each row that represents an app

        --// find the correct one using it's static text which will be the app name
        repeat with i from 1 to number of items in theList
            set this_item to item i of theList
            set counter to counter + 1
            try
                set theValue to value of static text of this_item
            end try
            if item 1 of theValue is equal to "iTunes" then
                exit repeat --// found it exit repeat
            end if
        end repeat

        select row counter of table 1 of scroll area 1 of window "Notifications" --// select the app in the table

        set theRadiaGroup to radio group 1 of group 1 of window "Notifications" --// the Radio buttons for the Notification type
        if windowTitle is "MiniPlayer" then
            --// mini player is active
            set theVal to value of radio button "None" of radio group 1 of group 1 of window "Notifications"
            --// we do not want to click the button if it is already selected. Which may or may not deslect all of them. (poss bug)
            if theVal is 0 then
                --//select no alert
                click radio button "None" of radio group 1 of group 1 of window "Notifications"
            end if
        else
            --// MAIN window is active
            set theVal to value of radio button "Banners" of radio group 1 of group 1 of window "Notifications"
            if theVal is 0 then
                --// we do not want to click the button if it is already selected. Which may or may not deslect all of them. (poss bug)
                click radio button "Banners" of radio group 1 of group 1 of window "Notifications"
            end if
        end if
    end tell
end tell
tell application "System Preferences" to quit

on windowTheTitle()
    tell application "System Events"
        try

            tell application process "iTunes" to set windowTitle to get title of window 1 --//Get the window title : iTunes or MiniPlayer
        on error
            set delayCounter to delayCounter + 1
            if delayCounter > delayTimeMax then return --//-- too many trys, lets stop

            delay 1
            my windowTheTitle()
        end try
    end tell
end windowTheTitle
on openSystemEvents()
    tell application "System Events"
        try

            tell application "System Preferences"
                activate
                delay 1
                set the current pane to pane id "com.apple.preference.notifications" --//  Open System Events at the notifications prefs

                if id of current pane is not "com.apple.preference.notifications" then
                    set delayCounter to delayCounter + 1
                    if delayCounter > delayTimeMax then return --//-- too many trys, lets stop

                    delay 1
                    my openSystemEvents()
                end if

            end tell
        on error
            set delayCounter to delayCounter + 1
            if delayCounter > delayTimeMax then return --//-- too many trys, lets stop

            delay 1
            my openSystemEvents()
        end try
    end tell
end openSystemEvents
on findTable()
    tell application "System Events"
        try

            tell application process "System Preferences"
                set theList to (get group 1 of UI element 1 of every row of table 1 of scroll area 1 of window "Notifications") -- get all the radio groups : the Apps grouped icon and text it the table
            end tell
        on error
            set delayCounter to delayCounter + 1
            if delayCounter > delayTimeMax then return --//-- too many trys, lets stop

            delay 1
            my findTable()
        end try
    end tell
end findTable

Como he dicho prueba de concepto. Lo más probable es que puedas ponerlo en un servicio de Automator y usar una tecla de acceso rápido con él.

También tenga en cuenta que, dependiendo de su sistema, es posible que tenga que añadir más retrasos para esperar a que la interfaz de usuario se ponga al día


Actualización 2

En realidad funciona mejor como un servicio de Automator con una tecla de acceso directo.

En Automator, utilice una acción de ejecución de Applescript y reemplace el código de la plantilla con lo anterior.

Establezca la entrada como no. y Cualquier aplicación. Guárdelo.

Abre los prefijos de los accesos directos. Busque su servicio en los Servicios y añada un acceso directo.

hecho.

enter image description here


enter image description here


enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X