مرجع هيكل audio_stream_out
#include < audio.h >
حقول البيانات | |
بناء audio_stream | شائع |
uint32_t(* | get_latency )(تركيبة audio_stream_out *stream) |
كثافة العمليات (* | set_volume )(struct audio_stream_out *stream، تعويم لليسار، تعويم لليمين) |
حجم_t(* | الكتابة ) (بنية audio_stream_out *stream، const void *buffer، size_t بايت) |
كثافة العمليات (* | get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
كثافة العمليات (* | get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp) |
كثافة العمليات (* | set_callback )(بنية audio_stream_out *stream، رد اتصال stream_callback_t ، باطلة *ملف تعريف الارتباط) |
كثافة العمليات (* | وقفة ) (بنية audio_stream_out * تيار) |
كثافة العمليات (* | استئناف )(بنية audio_stream_out *stream) |
كثافة العمليات (* | استنزاف ) (بنية audio_stream_out * تيار، نوع audio_drain_type_t ) |
كثافة العمليات (* | تدفق ) (بنية audio_stream_out * تيار) |
كثافة العمليات (* | get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
وصف تفصيلي
audio_stream_out هي واجهة التجريد لأجهزة إخراج الصوت.
فهو يوفر معلومات حول الخصائص المختلفة لبرنامج تشغيل أجهزة إخراج الصوت.
التوثيق الميداني
بناء audio_stream المشترك |
الطرق الشائعة لتدفق الصوت. يجب أن يكون هذا هو العضو الأول في audio_stream_out حيث أن مستخدمي هذه البنية سوف يرسلون audio_stream إلى مؤشر audio_stream_out في السياقات حيث من المعروف أن audio_stream يشير إلى audio_stream_out .
كثافة العمليات (* استنزاف) (بنية audio_stream_out * تيار، نوع audio_drain_type_t ) |
يطلب إعلامًا عند تشغيل البيانات المخزنة مؤقتًا بواسطة برنامج التشغيل/الجهاز. إذا تم استدعاء set_callback() مسبقًا لتمكين وضع عدم الحظر، فيجب ألا يتم حظر التصريف () وبدلاً من ذلك يجب أن يعود بسرعة ويتم إعلام اكتمال التصريف من خلال رد الاتصال. إذا لم يتم استدعاء set_callback() ، فيجب حظر التصريف () حتى الانتهاء. إذا كان النوع==AUDIO_DRAIN_ALL، فسيكتمل التصريف عند تشغيل جميع البيانات المكتوبة مسبقًا. إذا كان النوع==AUDIO_DRAIN_EARLY_NOTIFY، فسيكتمل التصريف قبل وقت قصير من تشغيل جميع البيانات الخاصة بالمسار الحالي لإتاحة الوقت لإطار العمل لإجراء تبديل مسار بدون فجوات.
يجب أن يعود التصريف فورًا عند استدعاء stop() و flush()
يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.
int(* تدفق)(بنية audio_stream_out *stream) |
uint32_t(* get_latency)(const struct audio_stream_out *stream) |
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
قم بإرجاع إحصاء حديث لعدد إطارات الصوت المقدمة إلى مراقب خارجي. وهذا يستثني الإطارات التي تمت كتابتها ولكنها لا تزال في طور التنفيذ. لا تتم إعادة تعيين العدد إلى الصفر عندما يدخل الإخراج في وضع الاستعداد. تقوم أيضًا بإرجاع قيمة CLOCK_MONOTONIC اعتبارًا من عدد العرض التقديمي هذا. من المتوقع أن يكون العدد الذي تم إرجاعه "حديثًا"، ولكن ليس من الضروري أن يكون أحدث قيمة ممكنة. ومع ذلك، يجب أن يتوافق الوقت المقترن مع أي عدد يتم إرجاعه. مثال: افترض أنه تم تقديم إطارات N+M، حيث M هو رقم "صغير". ومن ثم يجوز إرجاع N بدلاً من N+M، ويجب أن يتوافق الطابع الزمني مع N بدلاً من N+M. لم يتم تعريف المصطلحين "حديث" و"صغير". أنها تعكس جودة التنفيذ.
3.0 وما فوق فقط.
int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
كثافة العمليات (* وقفة) (بنية audio_stream_out *تيار) |
يقوم بإعلام برنامج تشغيل الصوت بإيقاف التشغيل ولكن يتم الاحتفاظ بالمخازن المؤقتة الموجودة في قائمة الانتظار بواسطة الجهاز. مفيد لتنفيذ الإيقاف المؤقت/الاستئناف. ومع ذلك، يجب تنفيذ التنفيذ الفارغ إذا لم يكن مدعومًا للأجهزة ذات زمن الوصول غير التافه. في حالة الإيقاف المؤقت، من الممكن أن تظل أجهزة الصوت تستخدم الطاقة. قد يفكر المستخدم في استدعاء التعليق بعد انتهاء المهلة.
يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.
int(* استئناف)(بنية audio_stream_out *stream) |
int(* set_callback)(بنية audio_stream_out *stream، رد اتصال stream_callback_t ، باطلة *ملف تعريف الارتباط) |
قم بتعيين وظيفة رد الاتصال للإخطار بإكمال الكتابة والصرف غير المحظور. يشير استدعاء هذه الوظيفة إلى أن جميع عمليات الكتابة () والصرف () المستقبلية يجب أن تكون غير محظورة وتستخدم رد الاتصال للإشارة إلى الاكتمال.
int(* set_volume)(بنية audio_stream_out *stream، تعويم لليسار، تعويم لليمين) |
ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t بايت) |
كتابة المخزن المؤقت الصوتي للسائق. يُرجع عدد البايتات المكتوبة، أو يُرجع قيمة Status_t سالبة. إذا تمت كتابة إطار واحد على الأقل بنجاح قبل حدوث الخطأ، فمن المقترح أن يقوم برنامج التشغيل بإرجاع عدد البايتات الناجح (القصير) ثم إرجاع خطأ في الاستدعاء اللاحق.
إذا تم استدعاء set_callback() مسبقًا لتمكين وضع عدم الحظر، فلن يُسمح للكتابة() بالحظر. يجب أن يكتب فقط عدد البايتات التي يتم احتواؤها حاليًا في المخزن المؤقت لبرنامج التشغيل/الجهاز ثم يقوم بإرجاع عدد البايتات هذا. إذا كان هذا أقل من حجم الكتابة المطلوب، فيجب استدعاء وظيفة رد الاتصال عند توفر مساحة أكبر في المخزن المؤقت لبرنامج التشغيل/الجهاز.
تم إنشاء وثائق هذه البنية من الملف التالي:
- الأجهزة/libhardware/تشمل/الأجهزة/ audio.h