Bash 从shell同时播放多个音频文件的健壮方法?

Bash 从shell同时播放多个音频文件的健壮方法?,bash,macos,concurrency,core-audio,sox,Bash,Macos,Concurrency,Core Audio,Sox,我正在试验通过几个并发shell脚本在Mac(OS X 10.10.5)上播放音频文件。每个脚本在单独的终端会话中运行,并定期调用sox(v.14.4.2)的实例来播放音频文件。例如,一个脚本可以执行以下操作: sox foo.aif-t coreaudio 另一个脚本执行此操作时: sox bar.aif-t coreaudio 第二个文件播放OK,但仅在回显错误消息后播放 sox[8139:17123955]***CFMessagePort:bootstrap_register():失败11

我正在试验通过几个并发shell脚本在Mac(OS X 10.10.5)上播放音频文件。每个脚本在单独的终端会话中运行,并定期调用
sox
(v.14.4.2)的实例来播放音频文件。例如,一个脚本可以执行以下操作:

sox foo.aif-t coreaudio

另一个脚本执行此操作时:

sox bar.aif-t coreaudio

第二个文件播放OK,但仅在回显错误消息后播放

sox[8139:17123955]***CFMessagePort:bootstrap_register():失败1100(0x44c)'Permission denied',port=0x46407,name='sox'
有关错误代码,请参阅/usr/include/servers/bootstrap_defs.h。

(/usr/include/servers/bootstrap\u defs.h没有太大帮助:它说错误代码1100被定义为
bootstrap\u NOT\u PRIVILEGED

只要另一个实例仍在播放,随后每次调用
sox
都会抛出相同的错误。我尝试运行了多达4个并发实例,得到了相同的结果

尽管sox似乎可以正常播放文件,但这个错误消息让我感到紧张,因为我的应用程序需要坚如磐石的稳定性(它将在365年7月24日同时播放多达4个文件)。另外,我不喜欢在终端会话(或者在重定向stderr之后,我的日志文件)中添加无用的错误消息

问题:

  • 我可以安全地忽略此错误,因为声音文件似乎播放正常

  • 这个错误可能与我在其他“下游”音频应用程序中遇到的问题有关吗?(例如,当我将音频从这些
    sox
    实例发送到的实例时,BUTT停止流式传输,其行为就好像它与音频源失去了连接一样)

  • 除了sox之外,是否有其他方法可以在并发会话中从命令行播放音频文件而不引发此错误


  • 试试afplay,它随macOS一起提供。刚刚用5个实例做了一个快速测试,它似乎有效


    afplay path/to/file

    试试afplay,它随macOS一起提供。刚刚用5个实例做了一个快速测试,它似乎有效


    afplay path/to/file

    只需关闭此线程。。。在运行OS X 10.12.4的较新Mac上重复测试时,不会出现错误消息。我可以无错误地运行5个
    sox
    afplay
    的并发实例


    至于我原来问题的第(3)部分
    afplay
    确实是从命令行预览音频文件的一种方便快捷的sox替代方案(谢谢@Dave!)。然而,我的情况是多频道(>8频道)--一些
    afplay
    做不到的事情,但是
    sox
    很容易做到。但由于我没有提到我的问题中的多渠道问题,我认为这个问题得到了回答。谢谢

    只需关闭此线程。。。在运行OS X 10.12.4的较新Mac上重复测试时,不会出现错误消息。我可以无错误地运行5个
    sox
    afplay
    的并发实例


    至于我原来问题的第(3)部分
    afplay
    确实是从命令行预览音频文件的一种方便快捷的sox替代方案(谢谢@Dave!)。然而,我的情况是多频道(>8频道)--一些
    afplay
    做不到的事情,但是
    sox
    很容易做到。但由于我没有提到我的问题中的多渠道问题,我认为这个问题得到了回答。谢谢

    您使用的是什么版本的MacOS?这并不能解决我的问题。我仍然收到错误:
    2017-05-18 15:25:32.647 afplay[36434:17617779]***CFMessagePort:bootstrap_register():失败1100(0x44c)'Permission denied',port=0x47407,name='afplay'See/usr/include/servers/bootstrap_defs.h获取错误代码。
    我正在使用10.12.4。请使用-d标志尝试一下,看看它是否提供了有用的信息谢谢。尝试了-d标志,但没有显示任何有用的内容。也许我的问题是我的旧操作系统(10.10)。我会看看我是否能找到一台操作系统为10.12的Mac电脑来试试……你用的是什么版本的MacOS?这并不能解决我的问题。我仍然收到错误:
    2017-05-18 15:25:32.647 afplay[36434:17617779]***CFMessagePort:bootstrap_register():失败1100(0x44c)'Permission denied',port=0x47407,name='afplay'See/usr/include/servers/bootstrap_defs.h获取错误代码。
    我正在使用10.12.4。请使用-d标志尝试一下,看看它是否提供了有用的信息谢谢。尝试了-d标志,但没有显示任何有用的内容。也许我的问题是我的旧操作系统(10.10)。我会看看是否能找到一台操作系统为10.12的Mac电脑来试试。。。