web-dev-qa-db-ja.com

コマンドラインからbansheeを使用できますか?

私は一般的にBansheeメディアプレーヤーが大好きで、すでに重要な音楽ライブラリを持っています。これを整理(ラベリング、修正など)するのに多くの時間を費やしました。

私もコマンドラインをよく使うので、コマンドラインからbansheeを制御する方法はあるのでしょうか。次のように:

  • 次に、前へ、停止、再生など
  • とにかく、GUIの検索ボックスを使用しているかのようにBansheeデータベースをクエリします

ない場合は自分でプログラムするのと似ていましたが、それは別の質問になります:)

12
tutuca

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
18
/usr/bin/banshee --next
/usr/bin/banshee --previous
/usr/bin/banshee --stop
/usr/bin/banshee --play

上記のすべては、キーボードのショートカットのXFCEで使用できます。

X86AudioNext
X86AudioPrev
X86AudioStop
X86AudioPlay
3
Zoltan Breller

Bansheeのインターフェイスをプログラムする場合(banshee --nextまたはその他の制御フラグを送信する機能を持っている以外の場合。 MPD-The Music Player Daemon これにより、独自のインターフェイスを作成したり、これらのいずれかを変更/使用したりできます Clients MPD上で動作するように設計

2
Marco Ceppi

Bansheeで使用できるコマンドはかなりありますが、もう少し時間がかかりましたが、ログイン時にスマートプレイリストを再生する方法が見つからなかったため、ここにスクリプトを記述しました。それは数ヶ月前で、それは私の最初のスクリプトの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
sinekonata