我在同一目录中有三个文件。一个是python脚本,它使用argumenet。一个是带有javascript的html页面。最后一个是源.wav文件。
./myfolder/sound_manipulation.py
./myfolder/volume_slider.html
./myfolder/the_song.wav
sound_manipulation.py文件可以像:
一样执行python sound_manipulation.py -v 50
它会根据the_song.wav生成一个新的wav文件new_song.wav,但只有原始音量的50%。
另一方面,volume_slider.html包含一个从0到100%的滑块,以及一个调用onclick javascript函数的按钮,update_vol();
到目前为止,update_vol()会提醒滑块的值,这就是全部。
function update_vol() {
var vol = document.getElementById('vol_slider').value;
alert(vol);
}
但我希望update_vol()使用vol。
实际执行python脚本我怎样才能实现这一目标?
此外,当执行“python sound_manipulation.py -v 50”时,如何将new_song.wav的位置返回给volume_slider.html?
请帮忙。谢谢!
答案 0 :(得分:1)
最简单,最粗糙的一次性cgi脚本可能会解决您的问题。
设置一个cgi脚本/环境,只需从用户获取volume
值,然后使用subprocess
模块处理.wav文件并将其发送回用户。如果您还需要更多内容,请构建自己的网络应用程序。
import cgi
import subprocess
import sys
form = cgi.FieldStorage()
volume = form.getfirst('volume') #read from form 'volume'
subprocess.call(['python', 'sound_manipulation.py', '-v', volume])
with open('new_song.wav', 'rb') as wav_file:
print("Content-Type: audio/wav\n")
sys.stdout.write(wav_file.read())
答案 1 :(得分:0)
我假设您要为该脚本创建图形界面,所以您可以选择: