python - 自动运行 python-pygame 脚本不输出声音
问题描述
我目前正在尝试通过 rc.local 自动启动 python 脚本。python脚本是关于在按下按钮时播放声音:
import RPi.GPIO as GPIO
import pygame
import pygame.mixer
GPIO.setmode(GPIO.BOARD)
GPIO.setup(37, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
pygame.init()
pygame.mixer.init()
ausgeloest = True # bool for making only a sound after the button was released
while True:
if GPIO.input(37) == 0:
ausgeloest = False
elif GPIO.input(37) == 1:
#my code before: pygame.mixer.music.load("Sound1.wav")
#my code before: pygame.mixer.music.play()
#new code (thanks to the answers):
music = pygame.mixer.Sound("/home/pi/soundmachine/Sound1.wav")
music.play()
print("Sound was played") #for testing purposes
ausgeloest = True
当我手动运行该脚本时,该脚本在桌面模式下完美运行。我已经通过右键单击扬声器标志将默认音频输出设置为模拟,因为我想使用 3.5 毫米输出。但是一旦我切换到控制台模式(自动登录)并尝试运行它,就没有音频输出。
更新:错误消息现在消失了,我可以在控制台上看到测试 print() 行,但我仍然听不到所需的声音......所以脚本正在执行,但不知何故声音听不见. 我怎么解决这个问题?
解决方案
推荐阅读
- mysql - 在 MySQL 中对行进行分组并选择最高 ID
- ios - 是否可以缩小 SwiftUI 网格周围的空间?
- c++ - 自定义构造函数不会进入 for 循环(C++)
- python - 如何循环遍历函数参数?
- python - Django登录页面的单元测试
- java - 如何将天数添加到 DateTime 区域
- git - 这个 `git clone` 语句是怎么回事?
- stripe-payments - 条纹卡检索 - PaymentMethodService 与 CardService
- aws-glue - 如何使用 AWS Glue 作业覆盖过时的分区数据?
- node.js - 负载均衡Nodejs应用的缓存策略