コマンドラインからパルスオーディオボリュームを読みますか? (私は欲しい:「pactl GET-sink-volume」)

コマンドラインからパルスオーディオボリュームを読みますか? (私は欲しい:「pactl GET-sink-volume」)

私が設定できる音量レベルを読んでみたいです。

pactl set-sink-volume $SINK $VOLUME

これを行う簡単な方法はありますか?仮定するのと同じくらい簡単です

pactl get-sink-volume $SINK

(どうですか?pactlを使ってボリュームを設定しましたが、ボリュームを100%以上に設定できるようになりましたが、これは悪い考えなので(音質が低下します)、小さなスクリプトを作成しようとしています。100%を超えません。これはありますか?100%ですが、元の問題がまだ存在します。

違いがある場合はDebianを使用しています。

2021年初頭に、pactlでこの機能を実装するための作業が進行中であるようです。この点を指摘してくれたKlaas van Schelvenに感謝します。

今(2022年末)注文があるようですpactl get-sink-volume

ベストアンサー1

pactl list sinks | grep '^[[:space:]]Volume:' | \
    head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'

これが私が持っているものです。きれいではありませんが、私の用途には十分です。見つかりません。方法行ってください。シンクを1つだけリストする方法はないようですが、pactl昇順で印刷されます。したがって、tailn番目の行を使用して選択してくださいhead。ボリュームラインには別々の左右のチャンネルボリュームがあり、sed交換にはそのボリュームのみが必要なので、最初のボリュームのみを選択します。

記録には、以下をpactl list sinks short使用してアクティブな受信者番号を取得します。

pactl list short | grep RUNNING | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,'

2017-10-05編集:パルスオーディオの変更のため、少し調整する必要がありました。これが私が今持っているものです:

SINK=$( pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1 )
NOW=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' )

私はMODそれを+10または-10に設定し、いくつかの境界チェックを実行した後、最後に次のようにしました。

pactl set-sink-volume $SINK ${MOD}%

おすすめ記事