如何检查是否连接了Airplay设备

时间:2013-11-15 15:54:13

标签: macos applescript itunes osx-mavericks

我想要制作一个脚本,需要检查是否有连接和使用的播放设备 我试过在很多地方搜索,但我似乎无法找到任何关于此的文件,有没有人知道我会怎么做?
为了进一步澄清,我想要一个类似于以下内容的脚本:

 if airplay device is in use then //(pause for longer)
 else //(the script that is already there)

这是我目前的代码

global okflag
set okflag to false
set front_app to (path to frontmost application as Unicode text)

-- check if iTunes is running 
tell application "System Events"
    if process "iTunes" exists then
        set okflag to true --iTunes is running
    end if
end tell

if okflag is true then
    set CV to output volume of (get volume settings)

tell application "iTunes"
    if (player state is playing) then
        set currentVolume to the sound volume
        set Timer to ""
        display dialog "Sleep Time (Minutes)" with title "iTunes Timer" default answer Timer buttons {"Cancel", "OK"} default button 2
        set Timer to text returned of the result
        set the_button to button returned of (display dialog "Shutdown after countdown?" with title "iTunes Timer" buttons {"No", "Yes"} default button 2)
        delay Timer * 60
        repeat with i from currentVolume to 0 by -1
            set the sound volume to i
            delay 0.6
        end repeat
        pause
        set player position to (player position - 60)
        --Restore original volume
        set the sound volume to currentVolume
        if the_button is "Yes" then tell application "System Events"
            shut down
        end tell
    else
        display dialog "Nothing Playing" with title "iTunes Timer" giving up after 2
    end if


end tell

else
display dialog "iTunes is not running" with title "iTunes Timer" giving up after 2

end if

编辑:添加了申请,以澄清我需要找到的内容

1 个答案:

答案 0 :(得分:0)

嗯。

但是如果你是从iTunes流媒体说的话,没有锻炼如何获得状态。 (到目前为止)

但是,如果将airplay用作扩展桌面空间或镜像然后在系统配置文件中选择用于显示,则进行锻炼。 SPDisplaysDataType

这个苹果至少说明了这一点。

      set connected to ""
try
    set connected to do shell script "system_profiler  SPDisplaysDataType | grep -i \"AirPlay\" "
    if connected contains "Connection Type: AirPlay" then
        set connected to "Connected as a Display or mirroring"
    end if
on error err
    log err
    if err contains "The command exited with a non-zero status" then
        --do somthing
        set connected to "Not connected as a Display or mirroring"
    end if
end try
connected

<强> UPDATE *

iTunes命令现在有一些播放命令。不确定它们何时出现。 但是使用的一个例子是:

    tell application "iTunes"
        set isPlaying to player state


    if isPlaying is playing then
            log isPlaying
            set airPlayEnabled to AirPlay enabled
            if airPlayEnabled then

                  log airPlayEnabled

            else

                airPlayEnabled
    end if


        else

            log isPlaying
        end if

    end tell

启用 AirPlay AFAIK仅针对其运行的iTunes播放器。而不是可能占用Airplay设备的任何其他设备