【问题标题】:Running afplay in Mac sh well running rest of script?在 Mac sh 中运行 afplay 并运行脚本的其余部分?
【发布时间】:2017-02-17 02:05:13
【问题描述】:

我正在为 Mac OS shell 中的游戏制作动画,我希望它能够播放音乐。因此,我(试图)利用 Mac OS 的 afplay 功能,该功能直接从 shell 播放声音文件,例如 mp3 文件。这是我的代码示例:

afplay ~/music.mp3
echo "THE YEAR IS 2020"
clear
echo
echo "THE YEAR IS 2020"
clear
echo
echo
echo "THE YEAR IS 2020"
clear

但是,在afplay ~/music.mp3 行中,它只是位于一个空白屏幕上。有没有办法让它同时播放声音和运行脚本的其余部分?

【问题讨论】:

    标签: bash macos shell audio


    【解决方案1】:

    可以通过在末尾标记 &(与号)来使命令在后台运行。在afplay 的情况下,还有一些信息打印到屏幕上。帮助文件没有显示如何禁用此功能,因此更骇人听闻的解决方案是将其重定向到 /dev/null。

    afplay ~/music.mp3 &>/dev/null &
    echo "THE YEAR IS 2020"
    
    echo "THE YEAR IS 2020"
    
    echo "THE YEAR IS 2020"
    

    哦,要停止音乐播放,请运行 kill $!$! 是一个特殊变量,包含最近后台进程的PID。

    【讨论】:

    • 有没有其他方法可以杀死进程?
    • 您可以通过发送“终端停止”信号kill -TSTP $! 更温和地停止它,相当于按Ctrl-Z 停止前台进程。如果你这样做了,你可以运行kill -CONT $! 来恢复进程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2016-07-23
    • 1970-01-01
    • 2020-03-16
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多