新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
#スムースなシンク切り替え器の使い方
~/bin に、以下のテキストをスクリプトとして保存。1行だけオレンジを書き換える。
多数BTヘッドフォンを保有している場合は、ヘッドフォン毎にスクリプトを作ると管理が楽ちん。たとえば、 ~/bin/sonyMDRxxx とか、ELECOMxxx とか。MACを書き換えるのを忘れないでください。
利用タイミング
BTヘッドフォンの電源をいれてだいたい10秒後ぐらい。2秒ぐらいでもいいけれど。
使い方:
お好きなように。
備考:なぜ必要か
GUIのサウンドでは表示はデジタルのままでも、実際はBTに切り替わっているというバグなんかが当方の環境では起きるので、 マウス操作するよりコマンドで確実に! という方針なのです。見た目ではわからない。Cinnamonです。最新版でも同様。Blueberryっていまいちなのかな?!
特に困ってない人は何もしなくてもいいのです。
多数BTヘッドフォンを保有している場合は、ヘッドフォン毎にスクリプトを作ると管理が楽ちん。たとえば、 ~/bin/sonyMDRxxx とか、ELECOMxxx とか。MACを書き換えるのを忘れないでください。
利用タイミング
BTヘッドフォンの電源をいれてだいたい10秒後ぐらい。2秒ぐらいでもいいけれど。
使い方:
- ターミナルで、スクリプト名を叩く。
- ファイルマネージャーでクリックする。
- 右クリックメニューに割り当てる。(おまけ実例後半)
お好きなように。
備考:なぜ必要か
GUIのサウンドでは表示はデジタルのままでも、実際はBTに切り替わっているというバグなんかが当方の環境では起きるので、 マウス操作するよりコマンドで確実に! という方針なのです。見た目ではわからない。Cinnamonです。最新版でも同様。Blueberryっていまいちなのかな?!
特に困ってない人は何もしなくてもいいのです。
#bt_smooth_sink(do name as you like it.)
#! /bin/bash
#@ A2DP 接続をほぼ確実にする。SINK切り替え限定の簡易版。Zish
# 接続+SINK切り替え版からのサブセットで抜き出しました。
#2012-2017
#
#書き換え ↓ your own a2dp headphone, you must rewrite below line !!
A2DPMAC=1A:A5:C6:D7:F2:CC
#A2DPMAC=2nd
#
#
#
#
BTSINKS=${A2DPMAC//:/_}
#接続そのものが難儀な場合は次を有効にしたほうがよい。
bt-device --connect $A2DPMAC
#echo ②デフォルトシンクを $A2DPMAC Bluetooth に
pactl list short sinks | grep $BTSINKS | perl -pe 's/^(\d.*?)\tbluez_.*$/pacmd set-default-sink $1/' | sh
#echo ③ BluetoothプロファイルをA2DPに切り替える
#pactl set-card-profile bluez_card.$BTSINKS off
pactl set-card-profile bluez_card.$BTSINKS a2dp_sink
pactl set-sink-volume bluez_sink.$BTSINKS 115%
#echo ④ pactl set-default-sink bluez_sink.$BTSINKS 前後関係チェック
pactl set-default-sink bluez_sink.$BTSINKS
#echo check bluez_sink="$BTSINKS"
if pactl list short sinks | grep -E 'bluez_sink' ; then
# echo ⦿ ブルートゥース A2DP + Hi-Fi 接続済み ⦿
# pactl list short sinks | grep bluez_sink | grep -P --color=auto '(hdmi)|(analog)|(iec\d*)|(bluez_sink)|\s(\d\d\d\d.*?)(?=Hz)|surround.*?\d\s|RUNNING|\s\d(?=ch)|(?!=s)(\d\d)(?=le)'
#無論、BTSINK限定なので無効であればA2DPから音出しできない。A2DP接続前提。定位チェックではないです
echo "女性の声で「左、右、真ん中」. A2DP(ヘッドフォン)から聞こえればたぶん成功。"
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Left.wav
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Right.wav
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Center.wav
else
echo "bluez_sink $BTSINKS ' がありません。BT/A2DP $BTSINKS は接続されていません。"
fi
echo EXIT
exit
Zish
A2DP 接続を確実にする。SINK切り替え簡易版(サブセット)。
#@ A2DP 接続をほぼ確実にする。SINK切り替え限定の簡易版。Zish
# 接続+SINK切り替え版からのサブセットで抜き出しました。
#2012-2017
#
#書き換え ↓ your own a2dp headphone, you must rewrite below line !!
A2DPMAC=1A:A5:C6:D7:F2:CC
#A2DPMAC=2nd
#
#
#
#
BTSINKS=${A2DPMAC//:/_}
#接続そのものが難儀な場合は次を有効にしたほうがよい。
bt-device --connect $A2DPMAC
#echo ②デフォルトシンクを $A2DPMAC Bluetooth に
pactl list short sinks | grep $BTSINKS | perl -pe 's/^(\d.*?)\tbluez_.*$/pacmd set-default-sink $1/' | sh
#echo ③ BluetoothプロファイルをA2DPに切り替える
#pactl set-card-profile bluez_card.$BTSINKS off
pactl set-card-profile bluez_card.$BTSINKS a2dp_sink
pactl set-sink-volume bluez_sink.$BTSINKS 115%
#echo ④ pactl set-default-sink bluez_sink.$BTSINKS 前後関係チェック
pactl set-default-sink bluez_sink.$BTSINKS
#echo check bluez_sink="$BTSINKS"
if pactl list short sinks | grep -E 'bluez_sink' ; then
# echo ⦿ ブルートゥース A2DP + Hi-Fi 接続済み ⦿
# pactl list short sinks | grep bluez_sink | grep -P --color=auto '(hdmi)|(analog)|(iec\d*)|(bluez_sink)|\s(\d\d\d\d.*?)(?=Hz)|surround.*?\d\s|RUNNING|\s\d(?=ch)|(?!=s)(\d\d)(?=le)'
#無論、BTSINK限定なので無効であればA2DPから音出しできない。A2DP接続前提。定位チェックではないです
echo "女性の声で「左、右、真ん中」. A2DP(ヘッドフォン)から聞こえればたぶん成功。"
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Left.wav
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Right.wav
paplay -d bluez_sink.$BTSINKS /usr/share/sounds/alsa/Front_Center.wav
else
echo "bluez_sink $BTSINKS ' がありません。BT/A2DP $BTSINKS は接続されていません。"
fi
echo EXIT
exit
Zish
A2DP 接続を確実にする。SINK切り替え簡易版(サブセット)。
#おまけ::Cinnamon/nemoアクションの右クリックメニューの実例:サブセットじゃないほう。
[Nemo Action]
Name=サウンド出力切替 Bluetooth SONY
Comment=sinks SONY
Exec=bash -c "sinks sony ; cinnamon-settings sound ;"
Name=サウンド出力切替 Bluetooth SONY
Comment=sinks SONY
Exec=bash -c "sinks sony ; cinnamon-settings sound ;"
#Exec=bash -c "sonymdr ;"
Icon-Name=deadbeef
Selection=none
Extensions=none
EscapeSpaces=true
Quote=double
Active=true
Selection=none
Extensions=none
EscapeSpaces=true
Quote=double
Active=true