Raspberry Pi Pulse Audio を起動停止するスクリプト

moOde Audioを導入している環境ではmoOdeが音響関連の中心になるかと思います。

現在のネット環境そしてraspbian stretchではPulse Audioを導入するとyoutubeなど快適に視聴できます。(まぁ時々は引っかかりますが)

Pulse Audioで煩わしいのはmoOde Audioにログイン可能な誰かがPulse Audioを起動してくれないと利用できないというところでしょうか。

そこでPi3ディスクトップから制御できるよう下記のサイトを参考に簡単なスクリプトを作成してみました。(そのまんまです)
参考サイト 「PHP」SSH2 関数さわってみた

Pi3にはphpをインストール、phpからsshでログイン、Pulse Audioを起動します。

pulseサーバー(リモートスピーカー)は手動でPulse Audioを正常に起動、停止できているものとします。

pulseクライアント(raspbianディスクトップ)の設定
PHPのインストール

# apt install php7.0-fpm php-ssh2

スクリプトは3ファイルになってしまいましたがどっか適当なディレクトリに一緒に置いておきます。
pulse.sh

#!/bin/sh

ACTION=$(zenity --list --radiolist \
  --hide-header \
  --title="Pulse Audio" \
  --text="Pulse Audio start or kill" \
  --column="Select" --column="Action" TRUE "Pulse Audio--Start" FALSE "Pulse Audio--Kill")
RET=$?
if [ "$ACTION" = "Pulse Audio--Start" ]; then
    /usr/bin/php ./pulse-start.php
elif [ "$ACTION" = "Pulse Audio--Kill" ]; then
    /usr/bin/php ./pulse-kill.php
else
   echo "cancel"
fi

pulse-start.php

#!/usr/bin/php

<?php
$connect = ssh2_connect("192.168.0.111", 22);
if($connect == true){
  $pass = ssh2_auth_password($connect, "pi", "moodeaudio"); 
  if($pass == true) {
    
    // mpd stop
    ssh2_exec($connect, "mpc stop");

    // pulse start
    ssh2_exec($connect, "pulseaudio --start");
  }
}
?>

pulse-kill.php

#!/usr/bin/php

<?php
$connect = ssh2_connect("192.168.0.111", 22);
if($connect == true){
  $pass = ssh2_auth_password($connect, "pi", "moodeaudio"); 
  if($pass == true) {

    // pulse kill
    ssh2_exec($connect, "sudo killall pulseaudio");
    
    // mpd play
    // ssh2_exec($connect, "mpc play");
  }
}
?>

各ファイルのパーミッション php(600) pulse.sh(755)
phpには接続先とユーザーのパスワードが書いてあります。現状に合わせて変更してください。

-rw------- 1 pi pi 318  2月 16 11:17 pulse-kill.php
-rw------- 1 pi pi 306  2月 16 11:17 pulse-start.php
-rwxr-xr-x 1 pi pi 417  2月 16 11:17 pulse.sh

ターミナルから./pulse.shを実行するとzenityのダイアログが出ます。ターミナルには多少のwarningが出ますが起動すればOKです。
パスの通ったところに置くとphpファイルを見つけられないことがあります。置き場所が決まったらpulse.shにフルパスで指定してください。

pulse-start.php
moode playerが再生中の場合は停止、数秒後にpulseが起動
pulseクライアントはpavucontrolを起動しておきます。

pulse-kill.php
pulseは起動したユーザーが停止できます。そのためroot権限でkillallしています。
またpulse停止後moode playerを自動再生させたい場合はコメントを外してmpc playを有効にしてください。

pulse.shはメニューに登録しておくとよいでしょう。
これだけでもずいぶん使い勝手は向上するものと思います。