MPRIS가 애플리케이션을 인식하지 못하도록 방지

MPRIS가 애플리케이션을 인식하지 못하도록 방지

Chrome 브라우저도 실행되는 동안 오디오 플레이어(일반적으로 Audacious v. 3.9)가 실행되는 경우가 많습니다. Chrome에서 비디오를 열면 오디오 플레이어에서 MPRIS 컨트롤을 "청구"하는 것 같습니다. Audacious를 제어하기 위한 단축키를 얻는 유일한 방법은 Chrome을 닫는 것입니다.

MPRIS가 Chrome을 '미디어 플레이어'로 인식하지 못하도록 방지하는 방법이 있어야 합니다. 문제는 이러한 앱 중 하나(또는 둘 다)가 MPRIS 기능을 제대로 "요구"하지 않는다는 것입니다. 에 따르면맨 페이지, 이는 MPRIS_REMOTE_PLAYER변수와 관련이 있습니다.

MPRIS_REMOTE_PLAYER
설정되지 않거나 로 설정된 경우 mpris-remote는 D-BUS를 통해 *" "에 등록된 첫 번째 플레이어와 통신합니다 . org.mpris.*MPRIS 호환 플레이어가 하나만 실행되고 있다면 괜찮습니다. 둘 이상의 실행 중인 경우 이 변수를 연결하려는 플레이어의 이름으로 설정하는 것이 좋습니다. 예를 들어 로 설정하면 foo" "에 있는 플레이어와 통신을 시도하고 org.mpris.foo해당 이름에 아무것도 없으면 실패합니다.

내 문제는 이 변수를 설정하는 방법을 모른다는 것입니다. 나는 D-bus 편집기에서 이에 해당하는 것을 찾았습니다.트레이의 미디어 플레이어), 그러나 내가 발견할 수 있는 관련 설정은 없습니다.

그러던 중에 나는 다음과 같은 사실을 발견했습니다.

$ qdbus org.mpris.*
org.mpris.MediaPlayer2.audacious
org.mpris.MediaPlayer2.chrome.instance13448

그래서 Audacious는"자신의" MPRIS 정체성, 그럼 어떻게 해야 하나요? 예방하다MPRIS 목적으로 Chrome이 "미디어 플레이어"로 인식되지 않습니까? 설정에 도움을 주시면 대단히 감사하겠습니다.

추신저는 우분투 18.04 LTS를 사용하고 있습니다.

답변1

이 문제에 대한 "MPRIS 관리" 솔루션이 있는지 아는 것이 여전히 좋지만 Chrome 자체의 설정을 사용하는 해결 방법이 있습니다.

Chrome은 미디어 키/단축키 제어를 "인계"하는 데 상당히 공격적인 것 같습니다. 다음 단계에 따라 이 기능을 비활성화할 수 있습니다.게시물에서 찾았습니다GHaks.net 사이트:

Google Chrome이 미디어 키 액세스를 제한하지 못하도록 현재 Chrome에서 하드웨어 미디어 키 처리 플래그를 비활성화할 수 있습니다. 그 방법은 다음과 같습니다.

  1. chrome://flags/#hardware-media-key-handlingChrome 주소 표시줄에 로드하세요 . 로드되면 올바른 플래그가 열려야 합니다.
  2. 하드웨어 미디어 키 처리 플래그를 다음으로 설정합니다.장애가 있는.
  3. Google 크롬을 다시 시작합니다.

내 컴퓨터에서 이 토글을 설정하면 Chrome은 이전/다시 시작한 세션의 탭을 그대로 유지하면서 브라우저를 다시 시작하는 "다시 시작" 버튼을 제공했습니다.

그러면 내 문제가 해결됩니다.경고MPRIS "솔루션"(예: MPRIS 사양을 사용하여 잠재적인 미디어 플레이어를 "숨기기")이 있다면 여전히 알고 싶습니다. ;)

답변2

나는 방금 "발견"했습니다.Playerctl(또는,Github에서). playerctlOP의 문제 중 일부(모두?)를 해결하는 훌륭한 명령줄 도구입니다. 공식 "정보"에서:

Playerctl은 MPRIS D-Bus 인터페이스 사양을 구현하는 미디어 플레이어를 제어하기 위한 명령줄 유틸리티이자 라이브러리입니다. Playerctl을 사용하면 재생 및 일시 중지와 같은 플레이어 작업을 미디어 키에 쉽게 바인딩할 수 있습니다. 상태 표시줄 생성기나 기타 명령줄 도구에 통합하기 위해 아티스트 및 제목과 같은 재생 트랙에 대한 메타데이터를 얻을 수도 있습니다.

고급 사용자를 위해 Playerctl은 미디어 플레이어 이벤트를 구독하거나 재생 트랙의 아티스트 및 제목과 같은 메타데이터를 가져오는 기능과 같은 보다 세부적인 제어를 허용하는 선호하는 스크립팅 언어로 사용할 수 있는 자체 검사 가능한 라이브러리를 제공합니다.

이는 MPRIS 컨트롤을 사용하는 동시에 특정 미디어 플레이어를 대상으로 하는 매우 간단한 방법입니다. 다음과 같은 방식으로 OP의 주요 관심사를 직접 해결하는 데 사용할 수 있습니다.

  1. 설치하다 playerctl,에서 쉽게.deb
  2. 제어하려는 플레이어를 식별하십시오. 이는 OP가 했던 것처럼 에 대한 응답의 고유한 종료 요소에서 수행 $ qdbus org.mpris.*하거나 ( playerctl자체를 사용하여) 를 사용하여 수행할 수 있습니다 $ playerctl --list-all.
  3. 그런 다음 해당 플레이어의 이름과 함께 사용하려는 컨트롤을 대상으로 지정할 수 있습니다(예: $ playerctl --player=audacious play-pause재생/일시 중지 전환). 이제 다른 MPRIS 관련 플레이어는 해당 명령을 "훔칠" 수 없습니다.
  4. 해당 명령을 바로 가기 키에 할당합니다(기본 설정 > 장치 > 키보드 > +).

따라서 다른 플레이어/앱에 의해 "인계"되지 않는 MPRIS 지침을 대상으로 하는 것이 간단한 문제가 되며, 이는 OP의 우려를 불러일으킵니다.

전체 지침은 다음에서 확인할 수 있습니다.Playerctl의 github 읽어보기.

관련 정보