Muy buenas a todos, os comento.
He realizado un programa en c++ que accede a mi tarjeta de sonido para realizar un medidas(Sonometro). Hasta aquí todo bien, cuando compilo y ejecuto el programa todo funciona perfectamente.
He instalado apache2 y php5 en my ordenador Linux distribución Ubuntu.
Aquí llega el problema, al intentar ejecutar el programa desde el sevidor con PHP no accede a la tarjeta de sonido.
Os muestro el código PHP
<html>
<head>
<title>Prueba de PHP</title>
</head>
<body>
<?php echo '<p>Sonometro</p>';
$result = exec("./sonometroc.cgi 2 0 2 0");
echo $result;
?>
</body>
</html>
Al poner la dirección en el navegador aprece lo siguiente:
Sonometro
Capture open error: No such file or directory
En el sonometroc.cgi esta es la parte que accede al la TJ de sonido
snd_pcm_t *handle_capture; /* handle of capture */
snd_pcm_sframes_t frames;
// Open handle of capture
if((err=snd_pcm_open(&handle_capture, device, SND_PCM_STREAM_CAPTURE, 0)) < 0) {
printf("Capture open error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
if((err = snd_pcm_set_params(handle_capture,
SND_PCM_FORMAT_S16_LE,
SND_PCM_ACCESS_RW_INTERLEAVED,
1,
48000,
1,
500000)) < 0) { /* 0.5s */
printf("Capture open error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
printf(" ");
fflush(stdout);
Uso la librería #include<alsa/asoundlib.h>
He probado otros programitas que no acceden a la tarjeta de sonido y todo OK.
¿Sabríais que es lo que pasa?, ¿hay que dar algún tipo de permisos a apache?
¡Muchísimas gracias de antemano!