15. ブラウザからコントロール

13項で作成したブラウザのリモコン機能に、スピーカの選択や音量調整、更に14項で導入したDLNA(UPnP)の"gmediarender"(player)のデーモン設定がUSBへの出力専用なので、ALSAデバイスのHDMIやイヤフォン端子からも出力ができるように機能追加した。
機能追加には、スピーカ選択と音量調整はBluetooth導入時にインストールした"pulseaudio"と"pavucontrol"を利用し、DLNA "gmediarender"はデーモン起動とは別にコマンドラインで実行させて実現。


● スピーカの切替
 pactl list short sinks                           # 使用可能なスピーカの情報
 pactl list short sink-inputs                     # 再生中のストリーミング情報
 pactl move-sink-input "$streamId" "$newSink"     # 再生中のスピーカの切替
 pactl set-default-sink "$newSink"                # デフォルトのスピーカ設定
● ボリューム
 pactl set-sink-volume $SINK $1%                  # ボリューム設定(%で指定)
 amixer set Master toggle                         # ミュートオン・オフ
● renderer起動・終了
 gmediarender --friendly-name=$HNAME-render --gstout-audiosink=alsasink --uuid=$UUID --gstout-initial-volume-db=0.0    # rendererをalsasinkで起動させる
 killall -q gmediarender                          # rederer終了

ブラウザのコントール画面は下図の通り。

ブラウザのコントール画面

3番目にコントロールページ追加

DLNAのALSA出力はON/OFFできるようにした

スピーカ切替や音量調整の動作確認し問題無く動作した。
rendererについては、iPadのAPPから追加したrendererが検出できるかテストし、問題無く検出して選択でき、サウンド出力も問題無し。

iPadのAPPが検出したrendererの画面

【参考】
  1. PulseAudio/サンプル
  2. gmrender-resurrect/INSTALL.md

2019/01/08