سؤال

أرغب في استخدام مكتبة Portaudio لتشغيل بيانات الصوت. هذه البيانات الصوتية تأتي من udp paquets.

لقد رأيت أن هناك وظيفة pa_opendefaultstream () (و pa_openstream () وهي مشابهة جدًا) لفتح دفق:

PaStream *stream;
PaError err;
/* Open an audio I/O stream. */
err = Pa_OpenDefaultStream( &stream,
                            0,          /* no input channels */
                            2,          /* stereo output */
                            paFloat32,  /* 32 bit floating point output */
                            SAMPLE_RATE,
                            256,        /* frames per buffer, i.e. the number
                                               of sample frames that PortAudio will
                                               request from the callback. Many apps
                                               may want to use
                                               paFramesPerBufferUnspecified, which
                                               tells PortAudio to pick the best,
                                               possibly changing, buffer size.*/
                            patestCallback, /* this is your callback function */
                            &data ); /*This is a pointer that will be passed to
                                               your callback*/

أعتقد أنني يجب أن أستخدمه للعب paquets الخاص بي ولكني لا أعرف كيفية استخدامه:

  • ما هي المعلمة الأولى؟
  • لماذا يجب علي تحديد وظيفة مكالمات الظهر؟

فيما يلي رابط إلى وثائق Portaudio: http://www.portaudio.com/trac/

أي مساعدة سيكون موضع تقدير كبير :)

شكرًا.

هل كانت مفيدة؟

المحلول

المعلمة الأولى هي مؤشر لدفق الإدخال/الإخراج ، من نوع pastream. سيتم قراءة بيانات الصوت من / مكتوبة إلى هذا الدفق.

تحتاج إلى كتابة وظيفة رد الاتصال التي ستتصل بها مكتبة Portaudio عندما تحتاج إلى قراءة أو كتابة الصوت إلى / من جهاز الكمبيوتر الخاص بك. أي معالجة صوتية أخرى تريد القيام بها (على سبيل المثال DSP) ستتم هنا أيضًا. ستؤدي وظيفة رد الاتصال البسيطة إلى نسخ الإدخال إلى الإخراج ، لتدفق I/O. إذا كنت تواجه مشكلة في استخدام عمليات الاسترجاعات ، فاستخدم واجهة برمجة تطبيقات الحظر بدلاً من ذلك ، فقد يكون من الأسهل فهمها.

قم بتجميع وتشغيل الأمثلة للحصول على التفاصيل (على سبيل المثال patest_read_record.c) ، هناك الكثير من المعلومات هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top