مرجع هيكل audio_stream_out

مرجع هيكل 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 هي واجهة التجريد لأجهزة إخراج الصوت.

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

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

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

بناء audio_stream المشترك

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

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

كثافة العمليات (* استنزاف) (بنية audio_stream_out * تيار، نوع audio_drain_type_t )

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

يجب أن يعود التصريف فورًا عند استدعاء stop() و flush()

يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.

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

int(* تدفق)(بنية audio_stream_out *stream)

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

يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.

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

uint32_t(* get_latency)(const struct audio_stream_out *stream)

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

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

int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp)

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

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

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 وما فوق فقط.

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

int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames)

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

كثافة العمليات (* وقفة) (بنية audio_stream_out *تيار)

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

يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.

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

int(* استئناف)(بنية audio_stream_out *stream)

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

يعد تنفيذ هذه الوظيفة إلزاميًا للتشغيل بدون تحميل.

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

int(* set_callback)(بنية audio_stream_out *stream، رد اتصال stream_callback_t ، باطلة *ملف تعريف الارتباط)

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

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

int(* set_volume)(بنية audio_stream_out *stream، تعويم لليسار، تعويم لليمين)

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

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

ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t بايت)

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

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

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


تم إنشاء وثائق هذه البنية من الملف التالي:
  • الأجهزة/libhardware/تشمل/الأجهزة/ audio.h