저는 셸에서 백그라운드 작업으로 오디오 파일(mp3, m4a) 재생을 시작한 다음 나중에 일시 중지/빨리 감기와 같은 작업을 수행할 수 있는 방법을 찾고 있습니다.
내장된 명령줄 옵션을 사용할 수 있습니까?
$ play audio.mp3 &
$ play --pause
아니면 플레이어의 프로세스 ID로?
$ play audio.mp3 & echo $! > pid
$ control_process $(cat pid) --signal pause
(예는 단지 설명을 위한 것입니다.)
답변1
VLC 플레이어를 사용할 수 있는 옵션이 있는 경우 dbus 호출을 사용하여 원격 애플리케이션(GUI) 또는 CLI를 통해 실행 중인 VLC 프로세스를 제어할 수 있습니다.
예를 들어, qdbus가 설치되어 있다고 가정하고 현재 재생 중인 음악의 재생/일시 중지를 전환하려면 다음을 수행하세요.
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
또는 재생목록의 다음 노래로 이동합니다.
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
사용 가능한 모든 명령을 봅니다.
$ qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2
이 스레드도 참조하세요.https://stackoverflow.com/questions/14256193/linux-control-a-running-vlc-process-through-command-line
답변2
보편적인 해결책은 없지만 최소한 2명의 플레이어가 이를 수행할 수 있습니다.
첫 번째 mplayer
는named pipes
.
먼저 /tmp/mplayer.fifo
명명된 파이프를 만듭니다.
$ mkfifo /tmp/mplayer.fifo
시작 mplayer
하고 다음을 가리킵니다 /tmp/mplayer.fifo
.
$ mplayer -novideo -idle -slave -input file=/tmp/mplayer.fifo file.mp3 </dev/null >/dev/null 2>&1 &
이제 다음을 작성하여 재생을 일시 중지하고 다시 시작할 수 있습니다 /tmp/mplayer.fifo
.
$ echo pause > /tmp/mplayer.fifo
그러면 재생이 pause
재개됩니다.
$ echo pause > /tmp/mplayer.fifo
빨리 감기와 같은 다른 작업을 수행할 수도 있습니다.
$ echo seek +60" > /tmp/mplayer.fifo
또는 재생을 되감기합니다.
$ echo "seek -60" > /tmp/mplayer.fifo
두 번째는 입니다 mocp
. 재생 시작:
$ mocp -S; mocp -p file.mp3
재생 일시 중지/재개:
$ mocp --toggle-pause
답변3
당신은 알고 싶을 수도 있습니다MPD, 원하는 거의 모든 작업(원격 제어, 새 트랙 추가 등)을 수행할 수 있습니다. 셸에서 백그라운드 프로세스로 실행되는 대신 시스템 서비스로 실행됩니다. 즉, 여러 세션과 로그인에서 쉽게 사용할 수 있습니다. 다른 시스템에서 원격으로 제어할 수도 있습니다(네트워크로 제어되는 주크박스 유형 장치에 널리 사용됩니다).
또한 콘솔에서 사용할 수 있는 프런트 엔드를 포함하여 여러 가지 멋진 프런트 엔드도 있습니다.