نحن ندرس محرك Mediastreamer2 VoIP. الجزء 2

مادة المقالة مأخوذة من قناة zen الخاصة بي .



قم بإنشاء مولد نغمات


في المقالة السابقة ، قمنا بتثبيت مكتبة وسائط الوسائط وأدوات التطوير واختبروا أدائها عن طريق إنشاء تطبيق تجريبي.


اليوم سنقوم بإنشاء تطبيق يمكن رؤيته من خلال بطاقة صوت على بطاقة صوت. لحل هذه المشكلة ، نحتاج إلى توصيل المرشحات بدائرة مولد الصوت الموضحة أدناه:


دائرة مولد الصوت


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


, , . , . — . , ( ) . , , , . , , 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