当 VLC 全屏运行时,是否可以以某种方式隐藏 Growl 和 Herald?

当 VLC 全屏运行时,是否可以以某种方式隐藏 Growl 和 Herald?

当我在观看电影时,Herald 会给我发送咆哮通知或邮件通知,这很烦人。我认为解决这个问题的一种方法是将 VLC 的“z-index”设置为高于 Growl 和 Herald 的通知框。或者我可以添加钩子让 VLC 全屏/窗口化,这样它就会在那个时候禁用 Growl 和 Herald。有什么建议吗?

如果有人感兴趣的话,我前段时间写了一个小应用程序,并决定邮政在此处将其关闭。它是任何播放器的包装器(默认为 VLC,通过将播放器放在应用程序上来完成播放器的设置)。当您用它打开电影时,它会退出GrowlHelperAppHeraldAgent请注意,将无法Mail.app使用鼠标进行交互,并且当播放器退出时,两个代理都将重新启动)。此外,如果按下打开电影fn,音量和亮度将变为 85%(当播放器退出时变回原样)。

答案1

打开 AppleScript 编辑器,另存为应用程序,保存时勾选“保持打开”。使用这个新的 applescript 应用程序启动 VLC 应用程序。

描述:它将启动 VLC,关闭咆哮通知,每 2 秒检查一次 VLC 是否已退出,如果已退出,它将重新打开咆哮通知,然后退出。作为额外奖励,它将使用咆哮通知来通知您何时打开或关闭咆哮通知。是的,因为这是很酷的做法。

不熟悉 Herald,但这可以让你入门。只需检查 Herald 的后台进程是什么,并相应地修改脚本……或退出/重新启动“邮件”进程。

global Growl_was_Loaded
global VLC_is_Loaded

on open mediaFiles
    launchThis(mediaFiles)
    idle
end open

on run
    launchThis(null)
    idle
end run

on idle
    set x to isAppLoaded("VLC")
    if x and not VLC_is_Loaded then
        launchVLC()
    else if VLC_is_Loaded and not x then
        set VLC_is_Loaded to false
        if Growl_was_Loaded then
            tell application "GrowlHelperApp" to launch
            growl_notify("Growl notifications: ON")
        end if
        tell me to quit
    end if
    return 2 -- wait 2 seconds    
end idle

on launchThis(mFiles)
    set Growl_was_Loaded to isAppLoaded("GrowlHelperApp")
    set VLC_is_Loaded to isAppLoaded("VLC")
    launchVLC(mFiles)
end launchThis

on launchVLC(mf)
    if mf is null then
        tell application "VLC" to launch
    else
        tell application "VLC" to open file mf
    end if

    if Growl_was_Loaded then
        growl_notify("Growl notifications: OFF")
        delay 1
        tell application "GrowlHelperApp" to quit
    end if
    set VLC_is_Loaded to true
    tell application "VLC" to activate
end launchVLC

on isAppLoaded(app_name)
    tell application "System Events"
        set app_list to every application process whose name is app_name
        if the (count of app_list) > 0 then
            set x to true
        else
            set x to false
        end if
    end tell
    return x
 end isAppLoaded

 on growl_notify(msg)
    tell application "GrowlHelperApp"
        set the allNotificationsList to {"Growl Toggler"}
        register as application "Growl Toggler" all notifications allNotificationsList default notifications allNotificationsList
        notify with name "Growl Toggler" title msg description "" application name "Growl Toggler" icon of application "Automator"
    end tell
end growl_notify

答案2

通过脚本运行 VLC,该脚本会终止 Growl、Hardware Growler 和 Herald,启动 VLC,并在 VLC 完成后重新启动其他任务。
另一种方法是将其编写为连续运行,测试 VLC 的进程列表,并在启动或退出 VLC 时终止/恢复 Growl 等。

答案3

这些是视觉通知还是音频通知,或者两者兼有?如果只是视觉通知,您可以在全屏模式下打开选项菜单来隐藏它们(对于 OSX,右键单击的等效项是什么)。然后将鼠标悬停在视频上并选择“始终在最上面”选项。

相关内容