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
[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
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 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
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
load-module module-native-protocol-unix
load-module module-dbus-protocol
sudo nano /etc/pulse/daemon.conf
daemonize = yes
daemonize = yes
sudo nano /etc/default/pulseaudio
PULSEAUDIO_SYSTEM_START=1
sudo systemctl enable pulseaudio
sudo systemctl start pulseaudio
sudo systemctl start pulseaudio
sudo nano /etc/asound.conf
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
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
[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 件のコメント:
コメントを投稿