我正在尝试使用python播放音频文件。虽然我只需要重现音频文件,但我会在树莓上使用GPIO。
当我收到相关链接的HTTP GET时,它应该执行python脚本并重现音频。但是,从API它只是再现一个短的声音。我的文件有10秒,但播放的噪音不到1秒。
这是我的控制器
// Controller
/* importar o módulo child_process */
var cp = require('child_process');
/* importar o módulo node-omxplayer */
var omx = require('node-omxplayer');
/* importar o módulo python-shell */
var ps = require('python-shell');
// Caminhos para os scripts pythons
var options = {
scriptPath: '/home/pi/Documents/apiRest/api/files/'
};
/* O módulo node-omxplayer usar o child_process para execução da query de reprodução do omxplayer */
module.exports.parar = function(application, req, res)
{
res.send('Comando de parada do video foi executado');
cp.exec('killall omxplayer.bin', function(err, stdout, stderr){
if(err)
{
return;
}
});
}
module.exports.repr = function(application, req, res)
{
var query = req.query.video;
if(query == '1')
{
res.send('Script de reprodução do video 1 sendo executado.');
vd1 = omx('/home/pi/Downloads/video1.mp4', 'hdmi');
}
else if(query == '2')
{
res.send('Script de reprodução do video 2 sendo executado.');
vd2 = omx('/home/pi/Downloads/video2.mp4', 'hdmi');
}
}
module.exports.trovao = function(application, req, res)
{
var out = '';
ps.run('trovao.py', options, function (err) {
if (err)
{
out = err;
throw err;
}
else
{
out = 'Ok';
}
console.log('finished');
res.send("Status: " + out);
});
}
我也尝试使用child_process来执行脚本,但是我有相同的结果。总是很小的噪音。 当我直接执行脚本时,使用python trovao.py IT WORKS !!
这是我的python脚本:
import pygame.mixer
from pygame.mixer import Sound
from time import sleep
pygame.mixer.init()
try:
thunder = pygame.mixer.Sound("thunder3.wav")
print ("Arquivo carregado!")
except pygame.error:
print ("Nao foi possivel carregar o arquivo!")
#Executa o som somente uma vez
aux = thunder.play()
while aux.get_busy():
continue
#pygame.time.delay(100)
#sleep(2)
#thunder.stop()
print("Reproduzido");
实际上,我需要播放音频文件并与某些GPIO交互同步。 我做错了什么?