簡體   English   中英

Python 腳本不會像 cgi 一樣播放聲音,而是通過命令行播放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM