Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo instalar complementos de audio en ubuntu

Cómo instalar complementos de audio en ubuntu

Utilice el siguiente comando:

sudo apt-get install libpulse-dev

Al realizar la instalación, el sistema le preguntará si depende del siguiente software, para que puedan instalarlo juntos:

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

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

tl.h>

#include < ;pulse/simple.h>

#include

.channels = 2

};

pa_simple *s = NULL;

int ret = 1;

int error ;

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

if (argc > 1) {

int fd;

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

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

ir a finalizar;

}

if (dup2(fd, STDIN_FILENO) < 0) {

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

ir a finalizar;

}

close(fd);

}

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

if (!(s = pa_simple_new(NULL, argv[0] , PA_STREAM_PLAYBACK, NULL, "reproducción", &ss, NULL, NULL, &error))){

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

ir a finalizar;

}

para (;;) {

uint8_t buf[BUFSIZE];

size_t r;

#if 0

pa_usec_t latencia;

if ((latencia = pa_simple_get_latency(s, &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)latency);

#endif

/* Leer algunos datos. ..*/

if ((r = leer(STDIN_FILENO,

buf, sizeof(buf))) <= 0) {

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

break;

fprintf( stderr, __FILE__": lectura() fallida: %s\n", strerror(errno));

ir a finalizar;

}

}

/* .play*/

if (pa_simple_write(s, buf, (size_t) r, &error) < 0) {

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

ir a finalizar;

}

}

/* Asegúrate de que se reproduzcan todas las muestras*/

if (pa_simple_ Drain(s, &error) < 0) {

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

ir a finalizar

}

ret = 0;

finalizar:

si (s)

pa_simple_free(s);

devolver ret;

}

2. Ejemplo de grabación

Herramienta de grabación simple usando API simple

//parec-simple.c

/ ***

Este archivo es parte de PulseAudio.

PulseAudio es un software gratuito y puedes redistribuirlo/y/o/o.

PulseAudio es software gratuito; usted puede

redistribuirlo y/o modificarlo

bajo los términos de la Licencia Pública General Reducida GNU publicada por el Software Libre. Base .

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

sin ninguna garantía, ni siquiera la garantía implícita de

comerciabilidad o idoneidad para un particular; objetivo. . Ver GNU

Licencia pública general.

Para más información, consulte la Licencia Pública General GNU

.

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

Si no, escriba a Free Software

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

Estados Unidos.

***/

#ifdef HAVE_CONFIG_H

#include

#endif

#include

#include

#include

#include

#include

#include

#define BUFSIZE 1024

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

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

ssize_t ret = 0;

mientras (tamaño > 0) {

ssize_t r; >

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

return r;

if (r == 0)

romper;

ret += r;

datos = (const uint8_t*) datos + r;

tamaño -= (size_t ) r;

}

return ret;

}

Este es mi primer intento de escribir en un archivo de datos.

p>

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

/* El tipo de muestreo que se utilizará*/

static const pa_sample_spec ss = {

.formato = PA_SAMPLE_S16LE,

.rate = 44100,

.canales = 2

};

pa_simple *s = NULL

int ret = 1;

int error;

/* Crear secuencia de registros*/

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

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

ir a finalizar;

}

for (;;) {< / p>

uint8_t buf[BUFSIZE];

/* Registra algunos datos...*/

if (pa_simple_read(s, buf, sizeof(buf), &error ) < 0) {

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

ir a finalizar;

}

/* y escríbalo 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;;

finalizar

finalizar:

si (s)

pa_simple_free(s);

return ret;

}

3. Al compilar una biblioteca que contiene pulseaudio, debe agregar la biblioteca de enlaces dinámicos. de pulseaudio - libpulse et al.

(Puede encontrar la biblioteca de enlaces dinámicos de pulso en el directorio /usr/lib/i386-linux-gnu/

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

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

/usr/lib/i386-linux-gnu/ directorio

/usr/lib/lib/i386-linux-gnu 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. - simple.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 ALSA<. /p >

El nombre completo de ALSA: Arquitectura sonora avanzada de Linux

La URL es: http://www.alsa-project.org/main/index.php/Main_Page