Como é possível pausar a reprodução do VLC quando meus fones de ouvido estão conectados? Posso silenciar os alto-falantes via ALSA, mas quero usar o gatilho para interromper a reprodução, como é habitual em smartphones.
vlc
headphones
video-player
playback
HerHde
fonte
fonte
Respostas:
Ok, então, com base no que aprendi aqui , estou tentando uma nova abordagem, usando a ACPI.
Crie um script para pausar e não pausar o VLC:
e coloque o seguinte neste arquivo:
Agora vamos criar um gatilho de evento (substitua
vim
pelo seu editor de texto favorito):e adicione o seguinte:
Por fim, reinicie o daemon ACPI:
Eu acho que deve ser exatamente o que você precisa, sem nenhuma pesquisa envolvida. A única desvantagem que posso encontrar com essa implementação é se você tiver vários usuários executando o VLC ao mesmo tempo. Suponho que, nesse caso, o que pode acontecer é que essa abordagem faça uma pausa aleatória e reinicie uma delas (ou ela pode simplesmente não funcionar).
Muitos elogios para @int_ua e @Sneetsher por me fornecerem conhecimentos importantes sobre o tratamento de eventos da ACPI. Também gostei de @ user3073656 por ajudar a simplificar o procedimento.
fonte
grep -z USER /proc/$_pid/environ
para que funcione para todos os usuários na máquina (com uma única sessão em execução / vlc). Eu estava procurando por essa opção.Ok, então você precisará fazer algumas coisas para isso:
Para (1) e (3): você pode usar o que é mostrado aqui . Esta resposta contém um pequeno procedimento para encontrar a diferença entre uma tomada conectada e uma desconectada e um script que você pode modificar para se adequar ao seu caso.
Para (2) e (4): você deve usar a interface Dbus do VLC. O código relevante deve ser o seguinte:
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Play
Para pausar e reproduzir, respectivamente.
Agora, sobre o script. No seu caso, deve ser algo como isto:
Adicione esse script modificado aos aplicativos de inicialização e pronto. Eu acho que deveria fazer o que você queria.
PS - Observe que existem maneiras mais eficientes de fazer isso, como usar
inotify
para detectar alterações de eventos (e talvez até outras abordagens), mas essa deve ajudá-lo a começar (e as outras estão acima do meu nível de habilidade e experiência). Suponho que você possa começar com essa abordagem "hackish" e desenvolver a partir daqui.fonte
sleep 0.25
no final, que é um atraso de quarto de segundo. Isso facilita a CPU e ainda funciona rápido o suficiente. Eu uso este, por vezes, em meus próprios scripts, também