[英]Python script won't play sound as cgi, but via command line
下面顯示的 CGI python 腳本 sound.py 通過連接到 Raspberry 音頻 output 的揚聲器播放聲音。 當我通過“python sound.py”從命令行執行腳本時,聲音播放良好。 但是,當我嘗試通過 Web ( http://192.168.1.246/cgi-bin/sound.py ) 調用它作為 cgi 腳本觸發它時,聲音不會播放,瀏覽器只會顯示“嗨,Hello World,”(我想這表明服務器至少將其識別為 CGI 腳本並執行它而不會產生錯誤)。
我認為這個問題可能與聲音文件的權限/所有權有關,並對其進行了修改,但這並沒有幫助(我還在下面粘貼了有關腳本本身的所有權和權限的信息,以及聲音文件)。
非常感謝您的幫助!
馬克。
-rwxrwxrwx 1 根 441 7 月 10 日 23:23 sound.py -rwxr-xr-x 1 根 29812 7 月 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!"
我能夠通過以下方式解決此問題:
sudo usermod -aG audio www-data
然后重啟 apache。
問題是,我從 web 的其他地方引用:
聲音設備(在 /dev/snd/ 中)只能由“音頻”組的成員訪問。 pi 是該組的成員,而 www-data 不是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.