рд╣рдо Mediastreamer2 рд╡реАрдУрдЖрдИрдкреА рдЗрдВрдЬрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ 2

рдореЗрд░реЗ рдЬрд╝реЗрди рдЪреИрдирд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдЦ рд╕рд╛рдордЧреНрд░реА ред



рдПрдХ рдЯреЛрди рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдПрдБ


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓реНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рдЙрдирдХреЗ рдХрд╛рдордХрд╛рдЬ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред


рдЖрдЬ рд╣рдо рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдзреНрд╡рдирд┐ рдЬрдирд░реЗрдЯрд░ рд╕рд░реНрдХрд┐рдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


рдзреНрд╡рдирд┐ рдЬрдирд░реЗрдЯрд░ рд╕рд░реНрдХрд┐рдЯ


, . . , . . , , , . , .


, , . , . тАФ . , ( ) . , , , . , , 10 .


. , , , . , . , тАФ , . , , . , . , , . .


, , . . :


/*  mstest2.c */
#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

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдореЗрдВ рджреЛ рдЯрди рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдЫреЛрдЯреА рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рд╕реБрдиреЗрдВрдЧреЗред


рд╣рдордиреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╕рд╛рдЙрдВрдб рд╕рд░реНрдХрд┐рдЯ рдмрдирд╛рдпрд╛ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ, рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдирдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВред рдкрд╣рд▓реА рд╕рдлрд▓рддрд╛ рд╕реЗ рдкреНрд░рд╕рдиреНрди рд╣реЛрдХрд░, рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЦреБрдж рдХреЗ рдмрд╛рдж рд╕рдлрд╛рдИ рдХреИрд╕реЗ рдХрд░реЗрдВред


All Articles