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 هي واجهة التجريد لأجهزة إخراج الصوت.
يوفر معلومات حول الخصائص المختلفة لبرنامج تشغيل جهاز إخراج الصوت.
التوثيق الميداني
هيكل دفق الصوت المشترك |
الطرق الشائعة لدفق الصوت. يجب أن يكون هذا هو العضو الأول في audio_stream_out حيث سيقوم مستخدمو هذه البنية بإرسال مسار صوتي إلى مؤشر audio_stream_out في السياقات حيث يُعرف أن دفق الصوت يشير إلى audio_stream_out .
int (* استنزاف) ( هيكل audio_stream_out * stream ، audio_drain_type_t type) |
يطلب إخطارًا عند تشغيل البيانات المخزنة مؤقتًا بواسطة برنامج التشغيل / الجهاز. إذا تم استدعاء set_callback () مسبقًا لتمكين وضع عدم الحظر ، فيجب ألا يتم حظر التصريف () ، وبدلاً من ذلك يجب أن يعود سريعًا ويتم إخطار اكتمال التصريف من خلال رد الاتصال. إذا لم يتم استدعاء set_callback () ، فيجب حظر التصريف () حتى اكتماله. إذا كان النوع == AUDIO_DRAIN_ALL ، يكتمل الاستنزاف عند تشغيل جميع البيانات المكتوبة مسبقًا. إذا كان النوع == AUDIO_DRAIN_EARLY_NOTIFY ، يكتمل الاستنزاف قبل وقت قصير من تشغيل جميع بيانات المسار الحالي لإتاحة الوقت لإطار العمل لإجراء تبديل مسار بدون فجوات.
يجب أن يعود الصرف على الفور عند استدعاء التوقف () و () المتدفق
تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.
int (* flush) (Struct audio_stream_out * stream) |
uint32_t (* get_latency) (بنية هيكلية audio_stream_out * stream) |
int (* get_next_write_timestamp) ( إنشاء هيكل audio_stream_out * stream ، int64_t * timestamp) |
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 وما فوق فقط.
int (* get_render_position) ( إنشاء هيكل audio_stream_out * stream ، uint32_t * dsp_frames) |
int (* pause) (Struct audio_stream_out * stream) |
يخطر برنامج تشغيل الصوت لإيقاف التشغيل ولكن يتم الاحتفاظ بالمخازن المؤقتة في قائمة الانتظار بواسطة الجهاز. مفيد لتنفيذ الإيقاف المؤقت / الاستئناف. التنفيذ الفارغ إذا لم يكن مدعومًا ، يجب تنفيذه للأجهزة ذات زمن انتقال غير بسيط. في حالة الإيقاف المؤقت ، لا يزال من الممكن أن تستخدم أجهزة الصوت الطاقة. قد يفكر المستخدم في استدعاء التعليق بعد انتهاء المهلة.
تنفيذ هذه الوظيفة إلزامي للتشغيل غير المحمل.
int (* استئناف) ( هيكل audio_stream_out * دفق) |
int (* set_callback) ( هيكل الصوت_تيار_وت * دفق ، Stream_callback_t callback ، باطل * ملف تعريف الارتباط) |
اضبط وظيفة رد الاتصال للإخطار باستكمال الكتابة والاستنزاف بدون حظر. استدعاء هذه الوظيفة يعني أن كل عمليات الكتابة () والاستنزاف () في المستقبل يجب أن تكون غير محظورة وأن تستخدم رد الاتصال لإكمال الإشارة.
int (* set_volume) (Struct audio_stream_out * stream، float left، float right) |
ssize_t (* write) ( هيكل audio_stream_out * stream ، const باطل * المخزن المؤقت ، size_t bytes) |
كتابة الصوت العازلة للسائق. تُرجع عدد البايت المكتوب أو إرجاع status_t سلبي. إذا تمت كتابة إطار واحد على الأقل بنجاح قبل حدوث الخطأ ، فمن المقترح أن يقوم برنامج التشغيل بإرجاع عدد البايت الناجح (القصير) ثم إرجاع خطأ في الاستدعاء التالي.
إذا تم استدعاء set_callback () مسبقًا لتمكين وضع عدم الحظر ، فلن يُسمح بحظر الكتابة () . يجب أن يكتب فقط عدد البايت المناسب حاليًا في المخزن المؤقت لبرنامج التشغيل / الأجهزة ثم إرجاع عدد البايت هذا. إذا كان هذا أقل من حجم الكتابة المطلوب ، فيجب استدعاء وظيفة رد الاتصال عند توفر مساحة أكبر في المخزن المؤقت لبرنامج التشغيل / الأجهزة.
تم إنشاء وثائق هذه البنية من الملف التالي:
- الأجهزة / الأدوات الإلكترونية / تشمل / الأجهزة / الصوت