【发布时间】:2017-07-12 01:48:36
【问题描述】:
如下所示的 CGI python 脚本 sound.py 通过连接到 Raspberry 音频输出的扬声器播放声音。当我通过“python sound.py”从命令行执行脚本时,声音播放正常。但是,当我尝试通过 Web (http://192.168.1.246/cgi-bin/sound.py) 调用它作为 cgi 脚本触发它时,声音不会播放,浏览器只会显示“Hi Hello World!” (我想这表明服务器至少将其识别为 CGI 脚本并执行它而不会产生错误)。
我认为问题可能与声音文件的权限/所有权有关,并对其进行了修改,但这并没有帮助(我还在下面粘贴了有关脚本本身的所有权和权限的信息和声音文件)。
非常感谢您的帮助!
马克。
-rwxrwxrwx 1 root root 441 Jul 10 23:23 sound.py -rwxr-xr-x 1 root root 29812 Jul 9 22:58 cardinal-short.mp3
脚本(sound.py):
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb
cgitb.enable()
import pygame
name = "cardinal-short"
pygame.mixer.init()
pygame.mixer.music.load("/var/www/html/cgi-bin/cardinal-short.mp3")
pygame.mixer.music.play()
pygame.mixer.music.set_volume(1.0)
while (pygame.mixer.music.get_busy() == True):
continue
pygame.mixer.quit()
print "Content-Type: text/plain;charset=utf-8"
print
print "Hi Hello World!"
【问题讨论】:
-
如果
pygame在没有 X11 或 TTY 的情况下无法初始化,那就是你的问题。将您的 stdout 和 stderr 记录到文件中将是一个不错的起点。 -
网络服务器是否连接了音频?您是否希望通过网络浏览器播放音频?
-
@user2357112 - 不确定 Web 服务器是否连接了音频。我该如何检查?我希望从 Raspberry 播放声音,而不是在浏览器中播放。
-
@Charles Duffy - 感谢您的建议。正在尝试进行一些日志记录。
-
我想的是服务于网络请求的机器,而不是网络服务器程序;如果它是您从命令行成功运行脚本的同一台机器(Raspberry?),我不知道您必须执行任何其他音频设置。
标签: python audio raspberry-pi