3 votos

¿Puede AppleScript detectar si se está reproduciendo Netflix o YouTube?

Tengo un script que detecta si QuickTime Player está jugar a algo en general pero también necesito una forma de detectar si Safari está reproduciendo algo específico como Netflix o YouTube, pero si pudiera detectar cualquier actividad de reproducción sería mejor.

on mySay(p, myMessage)
    if application "QuickTime Player" is running then
        tell application "QuickTime Player" to set isQTplaying to ¬
            ((documents whose playing is true) is not {}) as boolean
    else
        set isQTplaying to false
    end if

    if isQTplaying then
        return
    else
        set myVolumeBefore to output volume of (get volume settings)
        set volume output volume p
        say myMessage
        set volume output volume myVolumeBefore
    end if
end mySay

6voto

user3439894 Puntos 5883

Esta es una forma de comprobar si el vídeo se está reproduciendo en Safari .

Ejemplo AppleScript código :

if (do shell script "pmset -g | grep -m 1 'displaysleep'") ¬
    contains "display sleep prevented by Safari" then

    --  # Video is playing.
    --  # Do something when video is playing.

else

    --  # Video is not playing.
    --  # Do something else when video is not playing.

end if

Notas:

Probado en MacOS Catalina .

El contains "display sleep prevented by Safari" sólo puede contener la cláusula contains "Safari" y funcionaría. Si tienes, por ejemplo Firefox reproducción de vídeo se utilizaría sólo firefox en esa cláusula, y sólo Google Chrome para Google Chrome .

Por lo general, los paréntesis alrededor del <code>do shell script</code> <em>comando </em>no son necesarios, excepto en este caso de uso para permitir el uso del carácter de continuación de línea, <code>¬</code> para haber sido colocado donde está.

0voto

Steve Torrence Puntos 8

Quería publicar la solución final que acabé utilizando. Basado en el ejemplo de @user3439894.

on mySay(p, myMessage)
    if (do shell script "pmset -g | grep -m 1 'displaysleep'") ¬
        does not contain "prevented" then
        set myVolumeBefore to output volume of (get volume settings)
        set volume output volume p
        say myMessage
        set volume output volume myVolumeBefore
    end if
end mySay

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