AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 764788
Accepted
Eddy Sorngard
Eddy Sorngard
Asked: 2023-12-14 06:04:04 +0800 CST2023-12-14 06:04:04 +0800 CST 2023-12-14 06:04:04 +0800 CST

Como obter os destinos de duas instâncias do VLC

  • 772

Se você tiver apenas uma instância do VLC em execução, poderá conversar com o VLC com dbus-send usando org.mpris.MediaPlayer2.vlc como destino:

$ dbus-send --dest=org.mpris.MediaPlayer2.vlc  ...

Se você tiver duas instâncias do VLC em execução, elas terão destinos diferentes xxxx e yyyy. Se quiser falar com um deles, você deve usar xxxx ou yyyy como destino:

$ dbus-send --dest=:xxxx   ...

O destino da primeira instância posso encontrar desta forma:

$ dbus-send --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBusorg.freedesktop.DBus.ListQueuedOwners  string:org.mpris.MediaPlayer2.vlc

method return time=1702494718.199915 sender=org.freedesktop.DBus -> destination=:1.1256 serial=3 reply_serial=2
   array [
      string ":1.1251"
   ]

Então vejo que o destino é 1,1251

Mas como posso obter o destino da segunda instância?

command-line
  • 1 1 respostas
  • 53 Views

1 respostas

  • Voted
  1. Best Answer
    Schmaehgrunza
    2023-12-14T18:49:38+08:002023-12-14T18:49:38+08:00

    eu sempre uso o busctl para obter as informações completas do dbus.
    Existe um barramento de sistema (busctl --system) e um barramento de sessão (busctl --user) ou lista completa (busctl -l)
    digite:

    busctl --user | grep "vlc"

    então você consegue algo assim

    :1.641                                              91266 vlc             xxxxx :1.641        session-c2.scope  c2      -
    :1.642                                              91266 vlc             xxxxx :1.642        session-c2.scope  c2      -
    :1.643                                              91266 vlc             xxxxx :1.643        session-c2.scope  c2      -
    :1.644                                              91266 vlc             xxxxx :1.644        session-c2.scope  c2      -
    :1.654                                              91361 vlc             xxxxx :1.654        session-c2.scope  c2      -
    :1.655                                              91361 vlc             xxxxx :1.655        session-c2.scope  c2      -
    :1.656                                              91361 vlc             xxxxx :1.656        session-c2.scope  c2      -
    :1.657                                              91361 vlc             xxxxx :1.657        session-c2.scope  c2      -
    org.kde.StatusNotifierItem-91266-2                  91266 vlc             xxxxx :1.644        session-c2.scope  c2      -
    org.kde.StatusNotifierItem-91361-2                  91361 vlc             xxxxx :1.657        session-c2.scope  c2      -
    org.mpris.MediaPlayer2.vlc                          91266 vlc             xxxxx :1.641        session-c2.scope  c2      -
    org.mpris.MediaPlayer2.vlc.instance91361            91361 vlc             xxxxx :1.654        session-c2.scope  c2   
    

    Os arquivos organizacionais são os serviços ativos.
    você vê que há um segundo serviço chamado org.mpris.MediaPlayer2.vlc.instance91361,
    a primeira instância vlc está no PID 91266, a segunda instância vlc está no PID 91361

    aqui no meu exemplo, ligue:

    dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListQueuedOwners string:org.mpris.MediaPlayer2.vlc.instance91361

    lhe dará suas informações sobre a segunda instância

    ----------- Por falar nisso

    você pode examinar o serviço dbus para a árvore de objetos
    busctl --user tree org.mpris.MediaPlayer2.vlc.instance91361

    você obtém:

    └─/org
      └─/org/mpris
        └─/org/mpris/MediaPlayer2
    

    então você também pode introspectar os objetos
    busctl --user introspect org.mpris.MediaPlayer2.vlc.instance91361 /org/mpris/MediaPlayer2

    saída:

    NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
    org.freedesktop.DBus.Introspectable interface -         -                                        -
    .Introspect                         method    -         s                                        -
    org.freedesktop.DBus.Properties     interface -         -                                        -
    .Get                                method    ss        v                                        -
    .GetAll                             method    s         a{sv}                                    -
    .Set                                method    ssv       -                                        -
    .PropertiesChanged                  signal    sa{sv}as  -                                        -
    org.mpris.MediaPlayer2              interface -         -                                        -
    .Quit                               method    -         -                                        -
    .Raise                              method    -         -                                        -
    .CanQuit                            property  b         true                                     emits-change
    .CanRaise                           property  b         false                                    emits-change
    .CanSetFullscreen                   property  b         false                                    emits-change
    .DesktopEntry                       property  s         "vlc"                                    emits-change
    .Fullscreen                         property  b         false                                    emits-change writable
    .HasTrackList                       property  b         false                                    emits-change
    .Identity                           property  s         "VLC media player"                       emits-change
    .SupportedMimeTypes                 property  as        29 "audio/mpeg" "audio/x-mpeg" "video/m… emits-change
    .SupportedUriSchemes                property  as        21 "file" "http" "https" "rtsp" "realrt… emits-change
    org.mpris.MediaPlayer2.Player       interface -         -                                        -
    .Next                               method    -         -                                        -
    .OpenUri                            method    s         -                                        -
    .Pause                              method    -         -                                        -
    .Play                               method    -         -                                        -
    .PlayPause                          method    -         -                                        -
    .Previous                           method    -         -                                        -
    .Seek                               method    x         -                                        -
    .SetPosition                        method    ox        -                                        -
    .Stop                               method    -         -                                        -
    .CanControl                         property  b         true                                     emits-change
    .CanPause                           property  b         false                                    emits-change
    .CanPlay                            property  b         false                                    emits-change
    .CanSeek                            property  b         false                                    emits-change
    .LoopStatus                         property  s         "None"                                   emits-change writable
    .MaximumRate                        property  d         32                                       emits-change writable
    .Metadata                           property  a{sv}     0                                        emits-change
    .MinimumRate                        property  d         0.032                                    emits-change writable
    .PlaybackStatus                     property  s         "Stopped"                                emits-change
    .Position                           property  i         0                                        emits-change
    .Rate                               property  d         1                                        emits-change writable
    .Shuffle                            property  d         false                                    emits-change writable
    .Volume                             property  d         0                                        emits-change writable
    org.mpris.MediaPlayer2.TrackList    interface -         -                                        -
    .AddTrack                           method    sob       -                                        -
    .GetTracksMetadata                  method    ao        aa{sv}                                   -
    .GoTo                               method    o         -                                        -
    .RemoveTrack                        method    o         -                                        -
    .CanEditTracks                      property  b         true                                     emits-change
    .Tracks                             property  ao        0                                        emits-change
    .TrackAdded                         signal    a{sv}o    -                                        -
    .TrackListReplaced                  signal    aoo       -                                        -
    .TrackMetadataChanged               signal    oa{sv}    -                                        -
    .TrackRemoved                       signal    o         -                                        -
    

    você vê todas as interfaces e métodos definidos.

    por exemplo, vamos pegar o método "OpenUri" da interface: org.mpris.MediaPlayer2.Player

    busctl --user call org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player OpenUri s "your url"
    -- abrirá o vídeo em primeira instância

    busctl --user call org.mpris.MediaPlayer2.vlc.instance91361 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player OpenUri s "your url"
    -- abrirá um vídeo na segunda instância

    call Sintaxe:
    ============
    call SERVICE OBJECT INTERFACE METHOD [ASSINATURA [ARGUMENTO...]]
    para obter mais informações - consulte busctl - ajuda

    tenha um bom dia!

    • 1

relate perguntas

  • O comando ip suporta curingas?

  • Qual é a interface recomendada para um utilitário que requer muitos parâmetros? [fechado]

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • Fazendo mysql CLI me pedir uma senha interativamente

  • Pub / sub de linha de comando sem um servidor?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve