audio_stream_out مرجع الهيكل

audio_stream_out مرجع الهيكل

#include < audio.h >

حقول البيانات

هيكل_تيار الصوت مشترك
uint32_t (* get_latency ) ( إنشاء هيكل audio_stream_out * stream)
int (* set_volume ) (Struct audio_stream_out * stream، float left، float right)
ssize_t (* الكتابة ) (Struct audio_stream_out * stream، const void * buffer، size_t bytes)
int (* get_render_position ) ( إنشاء هيكل audio_stream_out * stream ، uint32_t * dsp_frames)
int (* get_next_write_timestamp ) (const بناء audio_stream_out * stream ، int64_t * timestamp)
int (* set_callback ) (البنية الصوتية_تيار_الخارج * الدفق ، Stream_callback_t callback ، void * cookie)
int (* وقفة ) (Struct audio_stream_out * stream)
int (* استئناف ) ( هيكل audio_stream_out * دفق)
int (* استنزاف ) ( هيكل audio_stream_out * stream ، audio_drain_type_t type)
int (* تدفق ) ( هيكل الصوت_تيار_وت * دفق)
int (* get_presentation_position ) ( إنشاء هيكل صوتي_تيار_وت * دفق ، uint64_t * إطارات ، هيكل timepec * طابع زمني)

وصف مفصل

audio_stream_out هي واجهة التجريد لأجهزة إخراج الصوت.

يوفر معلومات حول الخصائص المختلفة لبرنامج تشغيل جهاز إخراج الصوت.

تعريف في السطر 276 لملف audio.h .

التوثيق الميداني

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

التعريف في السطر 282 لملف audio.h .

int (* استنزاف) ( هيكل audio_stream_out * stream ، audio_drain_type_t type)

يطلب إخطارًا عند تشغيل البيانات المخزنة مؤقتًا بواسطة برنامج التشغيل / الجهاز. إذا تم استدعاء set_callback () مسبقًا لتمكين وضع عدم الحظر ، فيجب ألا يتم حظر التصريف () ، وبدلاً من ذلك يجب أن يعود سريعًا ويتم إخطار اكتمال التصريف من خلال رد الاتصال. إذا لم يتم استدعاء set_callback () ، فيجب حظر التصريف () حتى اكتماله. إذا كان النوع == AUDIO_DRAIN_ALL ، يكتمل الاستنزاف عند تشغيل جميع البيانات المكتوبة مسبقًا. إذا كان النوع == AUDIO_DRAIN_EARLY_NOTIFY ، يكتمل الاستنزاف قبل وقت قصير من تشغيل جميع بيانات المسار الحالي لإتاحة الوقت لإطار العمل لإجراء تبديل مسار بدون فجوات.

يجب أن يعود الصرف على الفور عند استدعاء التوقف () و () المتدفق

تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.

تعريف في السطر 372 لملف audio.h .

int (* flush) (Struct audio_stream_out * stream)

يخطر برنامج تشغيل الصوت لمسح البيانات الموجودة في قائمة الانتظار. يجب أن يكون البث متوقفًا مؤقتًا بالفعل قبل استدعاء flush () .

تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.

التعريف في السطر 380 لملف audio.h .

uint32_t (* get_latency) (بنية هيكلية audio_stream_out * stream)

إرجاع وقت الاستجابة المقدر لبرنامج تشغيل أجهزة الصوت بالمللي ثانية.

تعريف في السطر 287 لملف audio.h .

int (* get_next_write_timestamp) ( إنشاء هيكل audio_stream_out * stream ، int64_t * timestamp)

احصل على التوقيت المحلي الذي سيتم فيه تقديم الكتابة التالية لبرنامج تشغيل الصوت. الوحدات هي ميكروثانية ، حيث يتم تحديد العصر بواسطة HAL الصوتي المحلي.

تعريف في السطر 324 لملف audio.h .

int (* get_presentation_position) (const هيكل audio_stream_out * stream ، uint64_t * إطارات ، هيكل timepec * طابع زمني)

قم بإرجاع عدد الإطارات الصوتية التي تم تقديمها إلى مراقب خارجي مؤخرًا. هذا لا يشمل الإطارات التي تمت كتابتها لكنها لا تزال في طور الإعداد. لا يتم إعادة تعيين العد إلى الصفر عندما يدخل الإخراج في وضع الاستعداد. تُرجع أيضًا قيمة CLOCK_MONOTONIC اعتبارًا من عدد هذا العرض التقديمي. من المتوقع أن يكون العدد الذي تم إرجاعه "حديثًا" ، ولكن لا يلزم أن يكون أحدث قيمة ممكنة. ومع ذلك ، يجب أن يتوافق الوقت المرتبط مع أي عدد يتم إرجاعه. مثال: افترض أنه تم تقديم إطارات N + M ، حيث M هو رقم "صغير". ثم يجوز إرجاع N بدلاً من N + M ، ويجب أن يتوافق الطابع الزمني مع N بدلاً من N + M. لم يتم تعريف المصطلحين "حديث" و "صغير". تعكس جودة التنفيذ.

3.0 وما فوق فقط.

تعريف في السطر 398 لملف audio.h .

int (* get_render_position) ( إنشاء هيكل audio_stream_out * stream ، uint32_t * dsp_frames)

تعريف في السطر 317 لملف audio.h .

int (* pause) (Struct audio_stream_out * stream)

يخطر برنامج تشغيل الصوت لإيقاف التشغيل ولكن يتم الاحتفاظ بالمخازن المؤقتة في قائمة الانتظار بواسطة الجهاز. مفيد لتنفيذ الإيقاف المؤقت / الاستئناف. التنفيذ الفارغ إذا لم يكن مدعومًا ، يجب تنفيذه للأجهزة ذات زمن انتقال غير بسيط. في حالة الإيقاف المؤقت ، لا يزال من الممكن أن تستخدم أجهزة الصوت الطاقة. قد يفكر المستخدم في استدعاء التعليق بعد انتهاء المهلة.

تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.

تعريف في السطر 345 لملف audio.h .

int (* استئناف) ( هيكل audio_stream_out * دفق)

يخطر برنامج تشغيل الصوت لاستئناف التشغيل بعد توقف مؤقت. إرجاع خطأ إذا تم استدعاؤه بدون مطابقة توقف مؤقت.

تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.

تعريف في السطر 353 لملف audio.h .

int (* set_callback) ( هيكل الصوت_تيار_وت * دفق ، Stream_callback_t callback ، باطل * ملف تعريف الارتباط)

اضبط وظيفة رد الاتصال للإخطار باستكمال الكتابة والاستنزاف بدون حظر. استدعاء هذه الوظيفة يعني أن كل عمليات الكتابة () والاستنزاف () في المستقبل يجب أن تكون غير محظورة وأن تستخدم رد الاتصال لإكمال الإشارة.

تعريف في السطر 333 لملف audio.h .

int (* set_volume) (Struct audio_stream_out * stream، float left، float right)

استخدم هذه الطريقة في المواقف التي يتم فيها خلط الصوت في الجهاز. تعمل هذه الطريقة كواجهة مباشرة مع الأجهزة ، مما يسمح لك بتعيين مستوى الصوت مباشرةً كما هو محدد عبر إطار العمل. قد ينتج عن هذه الطريقة عدة مخرجات PCM أو برامج ترميز تسريع للأجهزة ، مثل MP3 أو AAC.

تعريف في السطر 296 لملف audio.h .

ssize_t (* write) ( هيكل audio_stream_out * stream ، const باطل * المخزن المؤقت ، size_t bytes)

كتابة الصوت العازلة للسائق. تُرجع عدد البايت المكتوب أو إرجاع status_t سلبي. إذا تمت كتابة إطار واحد على الأقل بنجاح قبل حدوث الخطأ ، فمن المقترح أن يقوم برنامج التشغيل بإرجاع عدد البايت الناجح (القصير) ثم إرجاع خطأ في الاستدعاء التالي.

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

تعريف في السطر 311 لملف audio.h .


تم إنشاء وثائق هذه البنية من الملف التالي:
  • الأجهزة / الأدوات الإلكترونية / تشمل / الأجهزة / الصوت