Как указать «имя приложения» PuseAudio при воспроизведении звука с SoX? - PullRequest
0 голосов
/ 08 октября 2019

Я хочу запустить команду из скрипта, например 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 голосов
/ 10 октября 2019

Кажется, ответ "нет, вы не можете этого сделать, в настоящее время".

Из электронной почты в списке пользователей sox:

В настоящее время нет способаустановить имя. Здесь жестко прописано: https://sourceforge.net/p/sox/code/ci/master/tree/src/pulseaudio.c#l65

Некоторые

...