Ubuntu: SoX 재생 명령을 사용하여 오디오 파일 재생

Ubuntu: SoX 재생 명령을 사용하여 오디오 파일 재생

편집하다:

playUbuntu에서 SSH를 통해 사운드를 재생하기 위해 SoX 명령을 사용하려고 합니다. 머신을 부팅하고 머신에 물리적으로 액세스하고 Ubuntu GUI에 로그인하면 이 play명령을 실행하고 파일을 재생하고 머신에서 오디오 출력을 들을 수 있습니다. 이는 로컬 세션에서 명령을 실행하든지 SSH 세션을 통해 실행하든 상관없이 작동합니다. GUI를 잠그더라도 작동합니다.

그러나 재부팅 시 Ubuntu GUI에 로그인하기 전에 SSH를 통해 연결하고 실행하면 play아무 소리도 들리지 않지만 패키지 설치 및 제거, openvpn 서비스 실행, scp클라이언트 간 시스템 및 파일 실행을 포함한 다른 모든 명령은 제대로 작동합니다. 또한 오디오 출력이 들리지 않더라도 SSH 터미널에는 오류가 표시되지 않습니다. SoX는 오디오가 재생 중이라고 표시합니다.

참고: SSH를 통해 내 서버에 대한 전체 루트 액세스를 활성화하지 않았습니다. 예를 들어, 여전히 무엇이든 할 수 있지만 에서 직접 아무것도 할 sudo수는 없습니다 .scp/root

내 생각엔 GUI 로그인 전에 내 오디오 서비스나 모듈이 활성화되지 않은 것 같습니다. 이에 대한 단서가 있나요?

기기: 맥북 에어 2017

우분투 데스크탑 22.04.1 LTS

답변1

그래서 해결책을 찾았습니다. 펄스 사용자들만 나열하는 "Audio"라는 그룹이 있는 것 같아요. SSH 액세스에 사용되는 사용자(사용자 이름)를 오디오 그룹에 추가해야 합니다.

  1. 오디오 그룹에 추가된 사용자 찾기
$ less /etc/group | grep audio
>>> audio:x:29:pulse
  1. 현재 사용자의 이름을 다시 확인해 보겠습니다.
$ who
>>> user_name      pts/0        2023-01-18 08:55 (10.0.0.167
  1. 사용자가 이 그룹에 속해 있는지 확인하세요. 1단계의 출력은 Pulse가 현재 오디오의 유일한 사용자로 설정되어 있음을 보여줍니다. 이제 이 그룹에 user_name을 추가해 보겠습니다.
$ sudo usermod -a -G audio user_name
  1. 작동하는지 다시 확인해 보세요.

$ less /etc/group | grep audio
>>> audio:x:29:pulse,user_name

  1. 다시 시작하세요!
$ sudo reboot
After reboot and re-login
$ play audio_file.mp3

관련 정보