【问题标题】:No sound on Raspbian when using root使用root时Raspbian上没有声音
【发布时间】:2020-06-14 19:05:20
【问题描述】:

我的 Raspberry 遇到了一个非常奇怪的问题。我需要用它播放声音,我需要在需要 sudo 才能工作的脚本中进行。但是,由于某种原因,当我尝试使用 sudo 播放声音时,它不起作用。 没有错误,它只是没有任何声音(我尝试了几个库,没有一个工作)。如果我使用 omxplayer,它确实有效。 如果我不使用 sudo,一切正常。 有人遇到过类似问题吗?

编辑:我添加了我使用的代码之一(这在另一个 Raspberry 上工作得很好)

import pygame
import time

pygame.mixer.init()
pygame.mixer.music.stop()
pygame.mixer.music.load("music.mp3")
pygame.mixer.music.play()

print("Going forward")

while True:
    time.sleep(1)

【问题讨论】:

  • 可以分享代码吗?
  • 可能以 root 身份登录,然后在没有 sudo 的情况下运行代码 - 看看它是否给出了一些错误消息。 root 可能有不同的权限或不同的模块(如果您使用--user 或virtualenv 安装模块)。或者,也许您应该更改用户的某些权限,以便在没有 sudo 的情况下访问。
  • 通常,运行进程的用户需要在音频输出组中。我无法想象为什么这对 root 不起作用。这不是音量的事情,对吧?

标签: python raspberry-pi pygame raspberry-pi3 raspbian


【解决方案1】:

您使用的是 3.5 毫米插孔还是 HDMI? 我过去注意到的一件事是,如果我将alsamixer 运行为user=pi,则默认设备是 3.5 毫米辅助插孔。但是,如果我运行sudo alsamixer,默认设备现在是 HDMI。从来没有想过为什么,只是知道这是一件事。

【讨论】:

    【解决方案2】:

    在使用 root 用户时花了将近一天的时间尝试启用模拟输出。

    首先确保默认用户 (pi) 有音频:

    aplay sound.wav
    

    如果可行,则将音频配置复制到 root 用户主页,试试这个:

    sudo su
    cd
    cp /home/pi/.asoundrc .asoundrc
    reboot
    

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多