Red de conocimiento de abogados - Derecho de sociedades - Cómo instalar el complemento de audio en ubuntu

Cómo instalar el complemento de audio en ubuntu

Utilice el siguiente comando:

sudo apt-get install libpulse-dev

Al instalar, se le pedirá que dependa del siguiente software, solo instale juntos:

libavahi-client-dev libavahi-common-dev libpulse-mainloop-glib0 libpulse0

También puede verificar las dependencias del software libpulse-dev en el sitio web oficial. de packages.ubuntu.com, los enlaces relevantes son los siguientes:

tl.hgt

#include lt;simple.hgt; incluir lt; pulse/error.hgt;

#define BUFSIZE 1024

int main(int argc, char*argv[]) {

/* El Formato de muestra a utilizar */

static const pa_sample_spec ss = {

.format = PA_SAMPLE_S16LE,

.rate = 44100,

.canales = 2

};

pa_simple *s = NULL;

int ret = 1;

int error;

/* reemplace STDIN con el archivo especificado si es necesario */

if (argc gt; 1) {

int fd;

if ((fd = open(argv[1 ], O_RDONLY)) lt; 0) {

fprintf(stderr, __FILE__": open() falló: s\n", strerror(errno));

ir a finalizar;

}

if (dup2(fd, STDIN_FILENO) lt; 0) {

fprintf(stderr, __FILE__" : dup2() falló: s\n ", strerror(errno));

ir a finalizar;

}

cerrar(fd);

}

/* Crear una nueva secuencia de reproducción */

if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, "playback" , amp;ss, NULL, NULL, amp; error))) {

fprintf(stderr, __FILE__": pa_simple_new() falló: s\n", pa_strerror(error));

ir a finalizar;

}

for (;;) {

uint8_t buf[BUFSIZE];

ssize_t r;

#if 0

pa_usec_t

latencia;

if ((latencia = pa_simple_get_latency(s, amp; error)) == (pa_usec_t) -1) {

fprintf(stderr, __FILE__": pa_simple_get_latency() falló : s\n", pa_strerror(error));

ir a finalizar;

}

fprintf(stderr, "0.0f usec \r", ( float)latencia);

#endif

/* Leer algunos datos... */

if ((r = read(STDIN_FILENO, buf, sizeof (buf))) lt; = 0) {

if (r == 0) /* EOF */

break;

fprintf(stderr, __FILE__": lectura() falló: s\n", strerror(errno));

ir a finalizar;

}

/* ... y reprodúcelo */

if (pa_simple_write(s, buf, (size_t) r, amp; error) lt; 0) {

fprintf(stderr, __FILE__": pa_simple_write() error: s\n", pa_strerror(error));

ir a finalizar;

}

}

/* Asegúrate que se reprodujo cada muestra */

if (pa_simple_drain(s, amp; error) lt; 0) {

fprintf(stderr, __FILE__": pa_simple_drain() falló: s \n", pa_strerror(error));

ir a finalizar;

}

ret = 0;

finalizar:

p>

si(s)

pa_simple_free(s);

devolver ret;

}

2. Muestra de grabación

Una herramienta de grabación sencilla que utiliza la API sencilla

//parec-simple.c

/***

Este archivo es parte de PulseAudio.

PulseAudio es software gratuito; puede redistribuirlo y/o modificarlo

bajo los términos de la Licencia pública general reducida de GNU tal como se publicó

por la Free Software Foundation; ya sea la versión 2.1 de Lice;

nse,

o (a su elección) cualquier versión posterior.

PulseAudio se distribuye con la esperanza de que sea útil, pero

SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de

COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia Pública General GNU

para obtener más detalles.

Debería haber recibido una. copia de la Licencia pública general reducida de GNU

junto con PulseAudio; de lo contrario, escriba a Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111. -1307

EE.UU..

***/

#ifdef HAVE_CONFIG_H

#include lt;config.hgt;

#endif

#include lt;stdio.hgt;

#include lt;unistd.hgt;

#include lt;string.hgt ;

#include lt;errno.hgt;

#include lt;pulse/simple.hgt;

#include lt;pulse/error.hgt;

#define BUFSIZE 1024

/* Una rutina simple que llama a UNIX write() en un bucle */

static ssize_t loop_write(int fd, const void* datos, size_t tamaño) {

ssize_t ret = 0;

mientras (tamaño gt; 0) {

ssize_t r;

if ((r = escribir(fd, datos, tamaño)) lt; 0)

return r;

if (r == 0)

romper ;

ret = r;

datos = (const uint8_t*) datos r;

tamaño -= (size_t) r;

}

return ret;

}

int main(int argc, char*argv[]) {

/* El tipo de muestra a utilizar */

static const pa_sample_spec ss = {

.format = PA_SAMPLE_S16LE,

.rate =

44100,

.canales = 2

};

pa_simple *s = NULL

int ret = 1; >

int error;

/* Crear el flujo de grabación */

if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_RECORD, NULL, "record ", & ss, NULL, NULL y error))) {

fprintf(stderr, __FILE__": pa_simple_new() falló: s\n", pa_strerror(error));

ir a finalizar;

}

for (;;) {

uint8_t buf[BUFSIZE];

/* Grabar algunos datos ... */

if (pa_simple_read(s, buf, sizeof(buf), amp; error) lt; 0) {

fprintf(stderr, __FILE__" : pa_simple_read () falló: s\n", pa_strerror(error));

ir a finalizar;

}

/* Y escribirlo en STDOUT * /

if (loop_write(STDOUT_FILENO, buf, sizeof(buf)) != sizeof(buf)) {

fprintf(stderr, __FILE__": escritura() falló: s\ n" , strerror(errno));

ir a finalizar;

}

}

ret = 0;

terminar:

if(s)

pa_simple_free(s);

devolver ret;

}

3. Al compilar la biblioteca pulseaudio, debe agregar la biblioteca de enlaces dinámicos libpulse, etc.

(Puede encontrar la dinámica de pulse en /usr/lib/i386-linux-gnu/ directorio Biblioteca

/usr/lib/i386-linux-gnu/libpulsecommon-1.1.so

/usr/lib/i386-linux-gnu/libpulsedsp.so

/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so

/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so.0

/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so.0.0.4

/usr/lib/i386-linux-gnu/libpulse-simple.so

/usr/lib/i386-linux-gnu/libpulse-sim

ple.so.0

/usr/lib/i386-linux-gnu/libpulse-simple.so.0.0.3

/usr/lib/i386-linux-gnu/ libpulse.so

/usr/lib/i386-linux-gnu/libpulse.so.0

/usr/lib/i386-linux-gnu/libpulse.so.0.13. 5)

Por ejemplo:

gcc -o pacat-simple pacat-simple.c -lpulse -lpulsecommon-1.1 -lpulse-simple

3. Biblioteca de audio

El nombre completo de ALSA es: Advanced Linux Sound Architecture

La dirección del sitio web es: http://www.alsa-project.org/main/index.php/Main_Page