Raspberry Pi 起動時から自動音楽再生させたい
Discussion
解決したいこと
Raspberry Piで起動時にシェルスクリプトでもPythonでもいいのでイヤホンジャックから音楽を自動再生させたいです。
発生している問題・エラー
手動(マウスカーソルで)Thonny Python IDE、シェルスクリプト実行は
どちらも問題なく稼働しているのですが、自動(.serviceなど)にすると音が出ない、
再生ファイルは.wav .mp3どちらでもいいです。
pythonはLEDとスイッチも追加してみたがソフトが動いてはいました、
接点で再生+LED点灯にしましたがLEDのみ点灯しました。
追記
ターミナルでshを実行しても音が出ませんでした。
sudo sh /home/admin/a.sh
メイン基板ラズパイ4
音出力は AVジャック、音量MAX、Muteなし イヤホンジャックからスピーカに接続になってます。
例)
#a.sh
aplay /home/admin/a.wav
#a.py すみません、色々試したやつの途中しかなかったので見やすいようにはしていませんが載せときます。
import vlc
import RPi.GPIO as GPIO
#import cv2##
from PIL import Image
import picamera
import time
import subprocess, shlex
from mutagen.mp3 import MP3
#import pygame.mixer
#pygame.mixer.init(30000)
#pygame.mixer.music.load("/home/admin/da/TALK_001.wav")
#pygame.mixer.music.play(1)
#from playsound import playsound
#playsound("/home/admin/da/TALK_001.wav")
#p = vlc.MediaPlayer()
#p.stop()
#p = vlc.MediaPlayer()
#p.set_mrl('/home/admin/da/TALK_001.wav')
#p.play()
#起動確認
subprocess.Popen("/home/admin/Desktop/g.sh".split(),stdout=subprocess.PIPE, shell=True)
#subprocess.call("aplay /home/admin/da/TALK_001.wav", shell=True)
#vlcPath = "/usr/bin/cvlc"
#vid = "/home/admin/da/TALK_001.mp3"
#subprocess.call([vlcPath, vid])
#subprocess.call("mpg321 /home/admin/da/TALK_001.mp3", shell=True)
#p = subprocess.Popen([vlcPath, vid])
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.OUT)#L
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(23, GPIO.OUT)#L
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(25, GPIO.OUT)#L
GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_UP)
time.sleep(3)#表示時間12
for i in range(4):
GPIO.output(15, GPIO.HIGH)#L
time.sleep(0.3)#表示時間3
GPIO.output(15, GPIO.LOW)#L
time.sleep(0.3)#表示時間3
#p = vlc.MediaPlayer()
try:
while True:
if GPIO.input(14) == 0:##elif
GPIO.output(15, GPIO.HIGH)#L
time.sleep(0.5)
#GPIO.output(15, GPIO.LOW)#L
#p.stop()
#p = vlc.MediaPlayer()
#p.set_mrl('/home/admin/da/TALK_001.mp3')
#subprocess.call([vlcPath, vid]).kill()
#vlcPath = "/usr/bin/cvlc"
#vid = "/home/admin/da/TALK_001.mp3"
#subprocess.Popen([vlcPath, vid])
subprocess.Popen("/home/admin/Desktop/g.sh".split(),stdout=subprocess.PIPE, shell=True)
#subprocess.call("mpg321 /home/admin/da/TALK_001.wav", shell=True)
#p.stop()
#p = vlc.MediaPlayer()
#p.set_mrl('/home/admin/da/TALK_001.wav')
#0p.play()
#pygame.mixer.music.stop()
#pygame.mixer.music.load("/home/admin/da/TALK_001.wav")
#pygame.mixer.music.play(1)
#SoundPlayer.play('/home/admin/da/TALK_001.mp3', stop=True)
#p.play()
time.sleep(2)
if GPIO.input(18) == 0:##elif
GPIO.output(23, GPIO.HIGH)#L
time.sleep(0.5)
#GPIO.output(23, GPIO.LOW)#L
#p.stop()
#p = vlc.MediaPlayer()
#p.set_mrl('/home/admin/da/TALK_002.mp3')
#SoundPlayer.play('/home/admin/da/TALK_002.mp3', stop=True)
#subprocess.call([vlcPath, vid]).kill()
#vlcPath = "/usr/bin/cvlc"
#vid = "/home/admin/da/TALK_002.mp3"
#subprocess.Popen([vlcPath, vid])
pygame.mixer.music.stop()
pygame.mixer.music.load("/home/admin/da/TALK_002.mp3")
pygame.mixer.music.play(1)
#p.play()
s#ubprocess.call("play /home/admin/da/TALK_002.wav")
time.sleep(2)
if GPIO.input(24) == 0:##elif
GPIO.output(25, GPIO.HIGH)#L
#GPIO.output(25, GPIO.LOW)#L
p.stop()
#p = vlc.MediaPlayer()
#p.set_mrl('/home/admin/da/TALK_003.mp3')
#SoundPlayer.play('/home/admin/da/TALK_003.mp3', stop=True)
#subprocess.call([vlcPath, vid]).kill()
vlcPath = "/usr/bin/cvlc"
vid = "/home/admin/da/TALK_003.wav"
subprocess.Popen([vlcPath, vid])
#pygame.mixer.music.stop()
#pygame.mixer.music.load("/home/admin/da/TALK_003.mp3")
#pygame.mixer.music.play(1)
#p.play()
time.sleep(2)
if GPIO.input(8) == 0:##elif
GPIO.output(15, GPIO.LOW)#L
GPIO.output(23, GPIO.LOW)#L
GPIO.output(25, GPIO.LOW)#L
#p.stop()
time.sleep(2)
except KeyboardInterrupt:
GPIO.cleanup()
#cv2.destroyAllWindows()
#同一フォルダ内に.wavと.mp3を入れてあります
自分で試したこと
pythonはmpg321、Pythom-vlc、pygame、を試しましたが駄目でした。
よろしくお願いいたします。
0