Material del artículo tomado de mi canal zen .

Crea un generador de tonos
En el artículo anterior , instalamos la biblioteca de medios, herramientas de desarrollo y probamos su funcionamiento mediante la creación de una aplicación de prueba.
Hoy crearemos una aplicación que se puede ver a través de una tarjeta de sonido en una tarjeta de sonido. Para resolver este problema, necesitamos conectar los filtros al circuito generador de sonido que se muestra a continuación:

, . . , . . , , , . , .
, , . , . — . , ( ) . , , , . , , 10 .
. , , , . , . , — , . , , . , . , , . .
, , . . :
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
int main()
{
ms_init();
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
MSSndCard *card_playback = ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
MSFilter *snd_card_write = ms_snd_card_create_writer(card_playback);
MSTicker *ticker = ms_ticker_new();
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, snd_card_write, 0);
ms_ticker_attach(ticker, voidsource);
char key='1';
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY, (void*)&key);
ms_sleep(2);
}
, : voidsource, dtmfgen, snd_card_write. .
, , . , , , " " ( ).
ms_filter_link(src, src_out, dst, dst_in)
-, — ( , ). -, — .
( ). , — . , .
(DTMF) "1". ms_filter_call_method() MS_DTMF_GEN_PLAY, , .
:
$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`
:
$ ./mstest2
Después de iniciar el programa, escuchará una breve señal de sonido que consta de dos tonos en la dinámica de la computadora.
Construimos y lanzamos nuestro primer circuito de sonido. Vimos cómo crear instancias de filtro, cómo conectarse y cómo llamar a sus métodos. Complacido con el primer éxito, aún debemos prestar atención al hecho de que nuestro programa no libera la memoria asignada antes de finalizar. En el próximo artículo, aprenderemos cómo limpiar después de nosotros mismos.