Automator:我想询问选项列表,然后 运行 基于我所做选择的特定工作流程

Automator: I want to ask for list of options and then run a specific workflow based on the choice I make

我拼凑了一个输出图像序列的 After Effects 渲染农场。我有一系列使用 FFMPEG 将这些帧转换为视频的 Automator 工作流程(目前 运行 作为应用程序)。

效果很好,但我需要超过六种不同的工作流程——每个主要帧率(24fps、25fps、30fps 等)各一个,以及每个创建带音频的视频 的副本 如果原始源文件夹包含音频文件。

我对拥有这么多工作流程感到满意,但我想将我导出的应用程序整合到一个主 Automator 应用程序中,该应用程序只询问我想要的帧速率(从列表中),然后做出选择并 运行是与该选择关联的特定工作流程(或应用程序)。

目前,我已经采用了在 Stack Overflow 上找到的 'Run AppleSript' 操作。我从小处着手,并以一些帧速率对其进行测试……

on run {input, parameters}

    choose from list {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} with prompt "Please make your selection" without multiple selections allowed and empty selection allowed
    return the result as string

    return input
end run

它 'works',它问我正确的问题,但我不太确定我从这里去哪里。我想我需要将答案传递给一个变量并使用它在 运行 工作流操作(或启动应用程序,看看我的工作流如何也是应用程序?)中进行选择,但我不知道如何.

如有任何帮助,我们将不胜感激。

此 AppleScript 代码可能适合您

set theChoice to (choose from list ¬
    {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} ¬
        with prompt "Please make your selection" without multiple selections allowed and empty selection allowed) as text

if theChoice is "ProRes 24" then
    tell application "workflow 1" to activate
else if theChoice is "ProRes 24 with Audio" then
    tell application "workflow 2" to activate
else if theChoice is "ProRes 30" then
    tell application "workflow 3" to activate
else if theChoice is "ProRes 30 with Audio" then
    tell application "workflow 4" to activate
end if

然后只需插入正确的 Automator 应用程序名称,替换这些..."workflow 1" 等

如果每个列表项都是应用程序的实际名称,那么在choose from list 命令 是:

if not result is equal to false then activate application (result as string)

这将打开所选的应用程序。

它也不需要是 Automator 应用程序,它可以是只有这两个 AppleScript 应用程序 命令:

choose from list {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} with prompt "Please make your selection" without multiple selections allowed and empty selection allowed
if not result is equal to false then activate application (result as string)