"mpc 검색" 결과를 재생하는 방법은 무엇입니까?

"mpc 검색" 결과를 재생하는 방법은 무엇입니까?

예:

$ mpc search title "when I was your man" 
Bruno Mars/Unorthodox Jukebox/06 Bruno Mars - When I Was Your Man.mp3

이 노래를 어떻게 연주하나요? 파이프를 통해 연결하려고 시도했지만 mpc play운이 없습니다.

$ mpc search title "when I was your man" | mpc play

답변1

mpc play파일 이름이 아닌 인수로 위치가 필요합니다. 재생 목록의 정확한 위치입니다. 먼저 add재생 목록에 파일을 추가한 다음 재생 목록에서 노래를 재생해야 합니다 mpc. play하지만 add재생 목록 끝에 새로운 노래가 추가됩니다. 새로 추가된 노래 의 경우 play재생 목록의 길이를 알아야 합니다.

노래를 추가하고 재생을 시작하는 방법에 대한 몇 가지 제안 사항은 다음과 같습니다.

  1. 먼저 재생목록을 삭제하세요.

    mpc clear
    mpc search title "when I was your man" | mpc add
    mpc play
    
  2. 다음 항목을 삽입하고 다음 항목을 재생합니다.

    mpc search title "when I was your man" | mpc insert
    mpc next
    
  3. 마지막으로 재생된 재생 목록의 길이를 결정합니다.

    mpc search title "when I was your man" | mpc add
    mpc play $(mpc playlist | wc -l)
    

답변2

mpd play수행해야 할 작업을 살펴보면 다음과 같습니다 .

play <position>
  Starts playing the song-number specified. If none is specified, plays number 1.

파일 이름이 로 지정되어 있음을 알 수 있습니다 position.

addidMPD가 수행하는 모든 명령(예 : ) 을 지원하지 않기 때문에 mpc를 사용하여 원하는 것을 달성하는 쉬운 방법이 있는지 잘 모르겠습니다 .

재생목록을 유지하고 싶지 않다면 다음을 수행하세요.

mpc clear; mpc search title "when I was your man" | mpc add; mpc play

이렇게 하면 재생 목록이 지워지고 원하는 노래를 추가한 후 재생 목록의 첫 번째 노래가 재생됩니다.

제가 생각하는 가장 좋은 방법은 재생목록에 노래를 추가하고 삭제하지 않고 해당 노래를 재생하는 것입니다.

title="your song title here"
mpc search title $title  | mpc add
mpc playlist -f '%position% %title%' | grep -i $title | head -n1 | cut - -d " " -f 1 | xargs mpc play

답변3

다음보다 더 쉬운 방법이 있습니다수락된 답변(노래가 이미 재생 목록에 있는 경우):

mpc searchplay filename "$(mpc search title 'when I was your man')"

결과가 없으면 mpc는 재생 목록의 첫 번째 노래만 재생합니다.

mpc의 출력이 필요하지 않으면 2>&1 >/dev/null.

답변4

이 답변은 다음과 같은 경우에 적용됩니다.두 개 이상의 트랙 추가(예: 앨범)도착하다.

우리는 경기에서 현재 위치를 얻을 수 있습니다:

position="$(mpc status | sed -n -e '/#/ s/^.*#\([[:digit:]]*\/[[:digit:]]*\).*$/\1/p')"
curr="$(<<< "$position" cut -d/ -f1)"
length="$(<<< "$position" cut -d/ -f2)"

그런 다음 검색 결과를 삽입하세요.

mpc search title "when I was your man" | mpc insert

그리고 처음부터 끝까지 재생해 보세요.

mpc play "$((length + 1))"

관련 정보