Raspberry Pi 3 Model B を用いてBluetoothスピーカーと接続した後、aplayコマンドがエラー出して音が出なかった問題の対応を備忘録として残しておく。

以下はすべてSSH接続によるCUIで行っている。

環境:Raspbian GNU/Linux 8.0 (jessie)

Bluetoothスピーカーとの接続

Bluetoothスピーカーとの接続は次のサイトを参考にすれば、全く問題なくBluetooth接続が完了する。
また、再起動後も自動的にBluetooth接続を行うため、とても便利だ。

Raspberry PI 3 で Bluetooth(A2DP)

エラー

この状態で、aplayコマンドを使うと次のようにエラーが表示されて音が鳴らない。


$ aplay /usr/share/sounds/alsa/Rear_Center.wav
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: アクセス拒否

aplay: main:722: audio open error: 接続を拒否されました

また、このときの/var/log/syslogを確認すると、次のようになっている。


raspberrypi pulseaudio[430]: W: [pulseaudio] protocol-native.c: Denied access to client with invalid authorization data.

エラー対応

このエラーの対応は、音を出すユーザーを「pulse-access」グループに追加すればよい。

注意すべきことは、rootであっても「pulse-access」グループに追加しないといけないということだ。

次のコマンドはuserとrootを「pulse-access」グループに追加している。


$ sudo gpasswd -a user pulse-access
$ sudo gpasswd -a root pulse-access

「pulse-access」グループにユーザーを追加した後、aplayコマンド実行すると、きちんとBluetoothスピーカーから音が出ることが確認できる。


$ aplay /usr/share/sounds/alsa/Rear_Center.wav
RaspberryPi Bluetoothスピーカーで音を出す方法