ฉันสามารถใช้แบนชีจากบรรทัดคำสั่งได้หรือไม่


12

ฉันรักผู้เล่นสื่อบันนี่โดยทั่วไปและฉันมีห้องสมุดดนตรีที่สำคัญอยู่แล้วซึ่งฉันใช้เวลามากมายในการจัดระเบียบ (การติดฉลากการแก้ไข ฯลฯ )

ฉันยังใช้บรรทัดคำสั่งเป็นจำนวนมากดังนั้นฉันจึงสงสัยว่ามีวิธีที่ฉันสามารถควบคุมแบนชีจากบรรทัดคำสั่งได้หรือไม่ ในขณะที่:

  • ถัดไปก่อนหน้าหยุดเล่น ฯลฯ
  • ในการสืบค้นฐานข้อมูล Banshee อยู่แล้วหากใช้ช่องค้นหาใน GUI

ฉันคล้ายกับการเขียนโปรแกรมด้วยตัวเองหากไม่มี แต่นั่นจะเป็นคำถามอื่น :)

คำตอบ:


18

ตามที่man bansheeเป็นไปได้ในการควบคุมการเล่น ฉันไม่แน่ใจเกี่ยวกับการค้นหา

นี่คือตัวอย่างการควบคุมที่คุณพูดถึง ตรวจสอบmanหน้าอื่น ๆ อีกมากมาย

--next 
    Play the next track, optionally restarting if the 'restart' value is set

--previous 
    Play the previous track, optionally restarting if the 'restart value is set

--stop 
    Completely stop playback

--play 
    Start playback

Doh! ฉันเดาต้อง RTFM! ขอบคุณที่ชี้ให้เห็น มีตัวเลือกมากมาย แต่ดูเหมือนว่าฉันไม่สามารถสืบค้นฐานข้อมูล คำสั่ง query- * เป็นเพียงสำหรับการพิมพ์ข้อมูลบน stdout : - /
tutuca

1
ใช่ดูเหมือนว่าข้อโต้แย้งแบบสอบถามจะใช้สำหรับรับข้อมูลเกี่ยวกับแทร็กปัจจุบันเท่านั้น ไม่ใช่สิ่งที่คุณกำลังมองหา
Michael Crenshaw

1
BTW หากคำตอบนี้ตอบคำถามของคุณจริงโปรดกดเครื่องหมายถูกที่ด้านข้าง
Michael Crenshaw

1
banshee เก็บในฐานข้อมูล SQLite จากนั้นคุณสามารถทำแบบสอบถาม
hgoebl

3
/usr/bin/banshee --next
/usr/bin/banshee --previous
/usr/bin/banshee --stop
/usr/bin/banshee --play

สิ่งเหล่านี้สามารถใช้ใน XFCE สำหรับแป้นพิมพ์ลัดของคุณตามลำดับสำหรับ:

X86AudioNext
X86AudioPrev
X86AudioStop
X86AudioPlay

2

หากคุณต้องการตั้งโปรแกรมอินเทอร์เฟซสำหรับ Banshee (นอกเหนือจากความสามารถในการส่งbanshee --nextหรือตั้งค่าสถานะการควบคุมอื่น ๆ ) จากนั้นคุณอาจสนใจMPD - Music Player Daemonซึ่งอนุญาตให้คุณสร้างอินเตอร์เฟสหรือแก้ไข / ใช้งานของคุณเอง หนึ่งในลูกค้าเหล่านี้ออกแบบมาเพื่อทำงานกับ MPD


1

มีคำสั่งที่คุณสามารถใช้กับ banshee ได้บ้างมันเป็นเวลาที่ยาวนานแล้ว แต่นี่เป็นสคริปต์ที่ฉันเขียนเพราะฉันไม่สามารถหาวิธีเล่นเพลย์ลิสต์อัจฉริยะได้เมื่อเข้าสู่ระบบ เมื่อหลายเดือนก่อนมันเป็นหนึ่งในสคริปต์แรกของฉันและฉันทำมันเพื่อความสนุกมันแย่มากฉันไม่ได้ลองมาก่อน แต่อย่างน้อยก็ควรให้ตัวอย่างของการใช้แบนชีบนเทอร์มินัล:

   #!/bin/bash
    banshee --hide &
    sleep 3;
    banshee --play;

    while true; do
        pos=`banshee --query-position| sed s/position:\ //| sed s/,.*//`;
        dur=`banshee --query-duration| sed s/duration:\ //| sed s/,.*//`;
        left="$(expr $dur - $pos)";

        rating=`banshee --query-rating|sed s/rating:\ //`;
        isHumour="$(banshee --query-uri|sed s/.*Music//|grep /Humour)";

      if [[ $pos -lt "3" ]] && ([[ $rating -lt "2" ]] || [[ -n "$isHumour" ]]);
      then
        echo "next";
        exec banshee --next &
      else
        echo "sleep for" $left;
        sleep "$left";
        pos=`banshee --query-position| sed s/position:\ //| sed s/,.*//`;
        dur=`banshee --query-duration| sed s/duration:\ //| sed s/,.*//`;
        left= expr $dur - $pos;
        echo $left;
    fi;
    sleep 0.0001;
    done;
    exit 0;

หวังว่ามันจะช่วยได้ขออภัยถ้ามันทำให้คุณงง ...


-1

ฉันไม่คิดว่าจะมีอินเตอร์เฟสบรรทัดคำสั่งสำหรับ Banshee ณ จุดนี้ และฉันไม่เคยได้ยินอะไรเลยที่บ่งบอกว่าพวกเขาจะได้ทำงานอย่างใดอย่างหนึ่ง


1
ฉันคิดว่า tutuca กำลังมองหาวิธีในการควบคุม Banshee จากบรรทัดคำสั่ง ไม่ใช่อินเตอร์เฟสบรรทัดคำสั่งแบบเต็ม (แม้ว่ามันจะเจ๋งมาก)
Michael Crenshaw

-1

นี่คือสิ่งที่ทุกคนมองหา:

sh -c "sleep 1m; banshee --hide & sleep 20; banshee --play"

1mย่อมาหมดเวลาที่คุณสามารถเปลี่ยน

คุณต้องใส่ในแอปพลิเคชันเริ่มต้นของคุณ


1
คุณช่วยอธิบายได้ว่าสิ่งนี้ช่วยให้สิ่งที่ OP ถามหรือไม่ ถัดไป, ก่อนหน้า, หยุด, เล่น, ค้นหาฐานข้อมูล?
DrSAR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.