用SoX播放声音时如何指定PuseAudio“应用程序名称”?

时间:2019-10-07 22:26:50

标签: sox pulseaudio

我想从脚本中运行命令,例如play mysound.mp3,并让PulseAudio记住此类调用的音量。

希望该卷应用于我在系统上进行的play的每次调用,只是这些特殊的调用。

在PulseAudio中,您可以按应用设置声音(也称为“接收器输入”)。但是,如何使用自定义的应用程序/接收器输入名称运行play,以便可以将其与其他调用区分开?

我正在想像play --appname foo mysound.mp3之类的东西,但是我没有在SoX中找到执行此操作的选项。

现在,它们都像这样显示在pactl list sink-inpuits中:

Sink Input #4023
        Driver: protocol-native.c
        Owner Module: 8
        Client: 2943
        Sink: 2
        Sample Specification: s32le 2ch 44100Hz
        Channel Map: front-left,front-right
        Format: pcm, format.sample_format = "\"s32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"fr
ont-left,front-right\""
        Corked: no
        Mute: no
        Volume: front-left: 42325 /  65% / -11.39 dB,   front-right: 42325 /  65% / -11.39 dB
                balance 0.00
        Buffer Latency: 130521 usec
        Sink Latency: 100817 usec
        Resample method: copy
        Properties:
                media.name = "playback"
                application.name = "SoX"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "4707"
                application.process.user = "myname"
                application.process.host = "myhost"
                application.process.binary = "sox"
                application.language = "C"
                window.x11.display = ":0.0"
                application.process.machine_id = "fa117ee892c54109a928f2c38093b473"
                application.process.session_id = "1"
                module-stream-restore.id = "sink-input-by-application-name:SoX"

因此,我想能够设置application.name字段或类似字段。

有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

似乎答案是“不,目前您不能这样做。”

在sox用户列表中的电子邮件中:

  

当前无法设置名称。这里是硬编码的:   https://sourceforge.net/p/sox/code/ci/master/tree/src/pulseaudio.c#l65

一些