PulseAudio は特定のプログラムのリスナーを変更できません。

PulseAudio は特定のプログラムのリスナーを変更できません。

サウンドカードを内蔵したヘッドフォンでテレグラムのサウンドを再生しようとしています。

以下は、オーディオ出力チャンネルを生成するプログラムのリストです。

$ pactl list sink-inputs      
Sink Input #4
        Driver: protocol-native.c
        Owner Module: 12
        Client: 19
        Sink: 2
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
        Corked: no
        Mute: no
        Volume: front-left: 42604 /  65% / -11,22 dB,   front-right: 42604 /  65% / -11,22 dB
                balance 0,00
        Buffer Latency: 30725 usec
        Sink Latency: 38824 usec
        Resample method: n/a
        Properties:
                application.icon_name = "google-chrome"
                media.name = "Playback"
                application.name = "Chrome"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "30"
                application.process.id = "3991"
                application.process.user = "pastafarianist"
                application.process.host = "DesktopPC"
                application.process.binary = "chrome"
                window.x11.display = ":0"
                application.language = "es_ES.UTF-8"
                application.process.machine_id = <long ID>
                module-stream-restore.id = "sink-input-by-application-name:Chrome"

Sink Input #8
        Driver: protocol-native.c
        Owner Module: 12
        Client: 29
        Sink: 1                                                                                                                                                                                                                                    
        Sample Specification: float32le 2ch 44100Hz                                                                                                                                                                                                
        Channel Map: front-left,front-right                                                                                                                                                                                                        
        Format: pcm, format.sample_format = "\"float32le\""  format.channels = "2"  format.channel_map = "\"front-left,front-right\""                                                                                                              
        Corked: yes                                                                                                                                                                                                                                
        Mute: no                                                                                                                                                                                                                                   
        Volume: front-left: 36052 /  55% / -15,57 dB,   front-right: 36052 /  55% / -15,57 dB                                                                                                                                                      
                balance 0,00                                                                                                                                                                                                                       
        Buffer Latency: 69659 usec                                                                                                                                                                                                                 
        Sink Latency: 18820 usec                                                                                                                                                                                                                   
        Resample method: copy                                                                                                                                                                                                                      
        Properties:                                                                                                                                                                                                                                
                media.role = hex:                                                                                                                                                                                                                  
                phonon.streamid = hex:                                                                                                                                                                                                             
                media.name = "Playback Stream"                                                                                                                                                                                                     
                application.name = "Telegram"                                                                                                                                                                                                      
                native-protocol.peer = "UNIX socket client"                                                                                                                                                                                        
                native-protocol.version = "30"                                                                                                                                                                                                     
                application.process.id = "7257"                                                                                                                                                                                                    
                application.process.user = "pastafarianist"
                application.process.host = "DesktopPC"
                application.process.binary = "Telegram"
                application.language = "es_ES.UTF-8"
                window.x11.display = ":0"
                application.process.machine_id = <long ID>
                module-stream-restore.id = "sink-input-by-application-name:Telegram"

によるとman pactl

move-sink-input ID SINK
              Move the specified playback stream 
              (identified by its numerical index)
              to the specified sink (identified
              by its symbolic name or numerical index).

ところで、テレグラムチャンネルを移動しようとすると、

$ pactl move-sink-input 8 2
Failure: Invalid argument

モバイルChromeが動作します。

$ pactl move-sink-input 4 1

エラーは生成されません。

テレグラムはChromeとどう違いますか?

答え1

これは、TelegramがオーディオストリームをDONT_MOVEとして指定するためです。flags出力のフィールドで確認できます。pacmd list-sink-inputs

関連情報