moOde audio + pulseaudio(pulse.php)

最近になってpulseaudio(pulse.php)の動作が以前と変わってしまいました。
具体的な現象としては外部からの接続時に作成したpulse.phpの音量表示が消える(音は出ている)
ボタンから再度スタートすると表示するが音量コントロールが効かない(間もなくキル)
pulseaudioはスタートしていてpavucontrolからは正常にコントロールできる

原因は不明ですが設定ファイルは以前と同じファイルを使っており今後の展開を踏まえ現状でなんとか打開策を模索してみることにしました。
Raspberry Pi Zero moOde audio 630(PulseAudio)

追記 20-02-09
以下の対策は失敗でした。表示は消えないものの一定時間経過後、肝心の音量変更が不可になります。

過去の設定を見直して見たところやはりwww-dataの~/.config/pulseの中のdefault.pa client.confの設定が抜けていました。
/var/www/html/www-data/.config/pulse/default.pa
.include /etc/pulse/default.paを書いて/etc/pulse/default.paに追記した3行(ネットワーク帯は各自環境)を加えます。

.include /etc/pulse/default.pa
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
set-default-source alsa_output.platform-soc_sound.stereo-fallback.monitor
set-default-sink alsa_output.platform-soc_sound.stereo-fallback

追記 20-02-11
client.confにauto-connect-localhost = yesを追記することで解決しました。

/var/www/html/www-data/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true
auto-connect-localhost = yes

user:groupはwww-data

# chown www-data:www-data default.pa
# chown www-data:www-data client.conf

変更したpulse.phpのtouch —client.conf 2行 rm —client.conf 1行を削除してpulseaudio –start
これで今までの設定になりますがchromium-browserで1〜2時間動画を視聴していると同じ現象が発生することがあります。取り敢えずpulse.phpのmoOdeボタンでpulseaudioキル、再度pulseaudioをスタートすると制御が戻ります。
復帰しないときはコマンドラインからnginx php7.3-fpm リスタート

$ sudo systemctl restart nginx php7.3-fpm

chromium-browserがwww-dataを制御しているようです。
これで様子を見ながら今後の課題とすることにします。

以下記事は無視

client.conf


moOde audio自身(内部)から実行するpulseaudioは特に問題なく再生する
外部からの接続時は30分〜1時間位で発生
現象発生時pulseaudioはwww-dataとしてスタートしている

$ ps aux | grep pulseaudio
www-data 15111  8.7  4.0 177528 18120 ?        Sl   09:53   0:01 pulseaudio --start
$ sudo -u www-data pactl list sinks | grep Volume
Invalid MIT-MAGIC-COOKIE-1 keyxcb_connection_has_error() は真を返しました
接続失敗 : 接続拒否
pa_context_connect() は失敗 : 接続拒否

/var/www/html/www-data/.config/pulse/client.confの空ファイルを置いておくと安定してpulseaudioを実行するがpulseaudio –killが効かない(再スタートする)

pulse.php

以上から外部からの接続時はclient.confをtouchしてpulseaudioをスタート、自身のmpdに切り替える際はclient.confをrmするようpulse.phpに追記してみました。

/var/www/html/pulse.php
/var/www/html/killall.sh

pulseボタン or 音量値ボタンでclient.confをtouch
default settingsにdefault volumeとplaylistを設定
moOdeボタンはmpc playとmpc pauseのトグル

simul.py

moOde audioのmpd再生はpulseaudioをキルしなければいけません。自身でのpulseaudio再生も特にclient.confは必要無いようなのでplay実行時client.confの有無をチェックしてrmしています。
再生開始はpulse.phpがpulseaudioモードでもsimul.pyが良きに計らってくれる筈です。(ボリューム値は再読込が必要)
~/bin/simul.py ~/bin/simul-sub.py

# play
def play_click():
    command = ("sudo ls /var/www/html/www-data/.config/pulse/client.conf")
    proc = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
    proc = proc[-12:]; proc=proc.strip()
    if proc == "client.conf":
        subprocess.run("sudo rm /var/www/html/www-data/.config/pulse/client.conf", shell=True)
    subprocess.run("~/bin/killall.sh", shell=True)
    play_selection()

当サイトではpulse.phpがpulseaudioの要になっています。以前と同じ動作になりました。
moOde audio(641)移行時必要なファイル(ライブラリ)を削除してしまったのかもしれません。