2024年6月21日金曜日

raspi(初代)でMp3再生 備忘録

  raspiでタッチセンサーにより、Mp3を再生することを試してみた。ディスプレイはつないでいない。OS起動時には、Pythonスクリプトが立ち上がっている必要があるが、これがなかなか一筋縄ではいかなかった。OS起動後に、pythonスクリプトを手動で実行はとくに問題なくできて、Mp3の再生もできたが、自動起動は配慮が必要だった。raspiでのMp3再生は自由度は高いと思うが、Dfplayerに比べると、どうしてもCPUに対する負荷が高くsambaやSSHの反応も遅くなりがち。手軽さはDfplayerに軍配があがると思う。

・事前準備として osのupdate upgradeはすましておく。また、pipが使えず、代わりに apt-get install python3-*** の***の部分に必要なモジュール名をしてやるといいようだった。他に、mpg123のインストール、raspi-configによるaudioの設定をはじめとしていろいろ設定が必要だった。

・sudo nano /etc/systemd/system/mp3player.serviceでサービスを作成
[Unit]
Description=Python Script for MP3Player
After=multi-user.target sound.target
[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi/
ExecStartPre=/bin/sleep 20
#20秒後にスタートするようにした。が、Afterで、sound.targetを指定したので、あまり意味ないかもしれない。
ExecStart=/usr/bin/python3 /home/pi/Mp3Player5.py
StandardOutput=inherit
StandardError=inherit
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
作成後は、反映させるために
sudo systemctl daemon-reload
sudo systemctl enable mp3player.service
sudo systemctl start(2回目からrestart) mp3player.service
sudo systemctl status mp3player.serviceで確認

sudo journalctl -u mp3player.service でも確認する

Mp3Player.pyのコードは、次回のブログ投稿で公開。

・pulseが、ログイン前に動作するようにいろいろ設定が必要

/etc/pulse/client.conf
autospawn = yes
daemon-binary = /usr/bin/pulseaudio
extra-arguments = --start

sudo nano /etc/pulse/system.pa
load-module module-native-protocol-unix
load-module module-dbus-protocol

sudo nano /etc/pulse/daemon.conf
daemonize = yes

sudo nano /etc/default/pulseaudio
PULSEAUDIO_SYSTEM_START=1

sudo systemctl enable pulseaudio
sudo systemctl start pulseaudio

sudo nano /etc/asound.conf
pcm.!default {
    type hw
    card 0
}
ctl.!default {
    type hw
    card 0
}

pulseaudio.serviceも作成します
[Unit]
Description=PulseAudio System Server
After=sound.target
[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm --exit-idle-time=-1
Restart=always
[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable pulseaudio.service
sudo systemctl start pulseaudio.service

0 件のコメント:

コメントを投稿