使用 SoX 播放声音时如何指定 PuseAudio "application name"?
How do I specify the PuseAudio "application name" when playing a sound with SoX?
我想 运行 来自脚本的命令,例如 play mysound.mp3
,并让 PulseAudio 记住此类调用的音量。
我确实不希望该卷应用于我在我的系统上进行的每次 play
调用,只是这些特殊调用。
在 PulseAudio 中,您可以为每个应用程序设置声音(又名 "sink input")。但是我如何 运行 play
使用自定义 application/sink-input 名称,以便与其他调用区分开来?
我正在想象 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
字段或类似字段。
有人知道怎么做吗?
看来答案是"no, you can't do that, currently"。
来自 sox 用户列表中的电子邮件:
There is currently no way to set the name. It is hard-coded here:
https://sourceforge.net/p/sox/code/ci/master/tree/src/pulseaudio.c#l65
我想 运行 来自脚本的命令,例如 play mysound.mp3
,并让 PulseAudio 记住此类调用的音量。
我确实不希望该卷应用于我在我的系统上进行的每次 play
调用,只是这些特殊调用。
在 PulseAudio 中,您可以为每个应用程序设置声音(又名 "sink input")。但是我如何 运行 play
使用自定义 application/sink-input 名称,以便与其他调用区分开来?
我正在想象 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
字段或类似字段。
有人知道怎么做吗?
看来答案是"no, you can't do that, currently"。
来自 sox 用户列表中的电子邮件:
There is currently no way to set the name. It is hard-coded here: https://sourceforge.net/p/sox/code/ci/master/tree/src/pulseaudio.c#l65