以下に示すCGI pythonスクリプトsound.pyは、ラズベリーのオーディオ出力に接続されたスピーカーからサウンドを再生します。コマンドラインから "python sound.py"を使ってスクリプトを実行すると、サウンドは正常に再生されます。しかし、Web(http://192.168.1.246/cgi-bin/sound.py)で呼び出すことでcgiスクリプトとして起動しようとすると、サウンドは再生されず、ブラウザには「こんにちはワールド!」と表示されます(これは、サーバーは少なくともそれをCGIスクリプトとして認識し、エラーを出さずに実行します)。Pythonスクリプトはcgiとしてサウンドを再生しませんが、コマンドライン経由で
私はこの問題がサウンドファイルのパーミッション/所有権と関係しているかもしれないと思っていましたが、それは助けになりませんでした(私はスクリプトの所有権とパーミッションに関する情報も貼り付けていますそれ自体、およびサウンドファイル)。
ありがとうございました!
Marc。
-rwxrwxrwx 1ルートルート441 7月10日午後11時23分sound.py -rwxr-XR-X 1ルートルート29812 7月9日22時58カーディナル-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をファイルに記録することは、始めるのに適しています。 –
Webサーバーに音声が接続されていますか?あなたは、オーディオがウェブブラウザから再生されることを期待していますか? – user2357112
@ user2357112 - Webサーバーにオーディオが接続されているかどうかはわかりません。これをどうやってチェックするのですか?ブラウザではなく、ラズベリーから音を出すようにしたい。 –