تتوافق مشغّلات الصوت مع سمات تحدّد كيفية معالجة النظام الصوتي. قرارات التوجيه والحجم والتركيز للمصدر المحدد. الطلبات إرفاق سمات بعملية تشغيل صوت (مثل الموسيقى التي يعزفها خدمة بث أو إشعار لرسالة إلكترونية جديدة) ثم تمرير الصوت المصدر إلى إطار العمل، حيث يستخدم النظام الصوتي السمات لاتخاذ قرارات متضاربة وإشعار التطبيقات بحالة .
وفي Android 4.4 والإصدارات الأقدم، اتخذ إطار العمل قرارات خلط باستخدام نوع البث الصوتي ومع ذلك، استندت هذه القرارات إلى نوع البث إلى حد كبير الحد لإنتاج مخرجات عالية الجودة عبر تطبيقات وأجهزة متعددة. على سبيل المثال، شغلت بعض التطبيقات (مثل خرائط Google) على جهاز محمول اتجاهات القيادة في نوع ساحة المشاركات STREAM_MUSIC؛ ومع ذلك، على الأجهزة الجوّالة في وضع العرض (أي Android Auto)، لا يمكن للتطبيقات مزج القيادة مع مجموعات بث الوسائط الأخرى.
استخدام الصوت Attribute API، وتوفّر التطبيقات نظامًا صوتيًا المعلومات المتعلقة بمصدر صوت معين، بما في ذلك الاستخدام (لماذا يتم عرض قيد التشغيل)، ونوع المحتوى (المحتوى الذي يتم تشغيله)، وعلامات (كيف يتم تشغيل المصدر التي يجب تشغيلها) والسياقات (الجديدة في الإصدار 9 من نظام Android). بناء الجملة:
AudioAttributes { mUsage mContentType mSource mFlags mTags / mFormattedTags / mBundle (key value pairs) }
- الاستخدام: تحدّد سبب تشغيل المصدر وعناصر التحكّم قرارات التوجيه والتركيز والحجم.
- نوع المحتوى: لتحديد المحتوى الذي يتم تشغيله من المصدر (موسيقى، فيلم، خطاب، صوتنة، غير معروف)
- السياق: قيم الاستخدام الملخصة في HAL للصوت
- الإبلاغ: تحدد هذه السمة طريقة تشغيل المصدر. يتضمّن ذلك دعمًا لإمكانية سماع الصوت (أصوات مصراع الكاميرا مطلوبة في بعض البلدان) ومزامنة الصوت/الفيديو للأجهزة.
وللمعالجة الديناميكية، يجب أن تميز التطبيقات بين الأفلام والموسيقى والمحتوى الكلامي. قد تكون المعلومات المتعلقة بالبيانات ذاتها مهمة أيضًا، مثل ارتفاع الصوت وذروة قيمة العينة.
استخدام السمات
يحدّد الاستخدام السياق الذي يتمّ فيه استخدام البث، معلومات حول سبب تشغيل الصوت والغرض منه. معلومات الاستخدام أكثر تعبيرًا من نوع البث، وتتيح للمنصات أو سياسات التوجيه لتحسين قرارات الحجم أو التوجيه.
أدخِل إحدى قيم الاستخدام التالية لأي مثال:
- USAGE_UNKNOWN
- USAGE_MEDIA
- USAGE_VOICE_COMMUNICATION
- USAGE_VOICE_COMMUNICATION_SIGNALLING
- استخدام_ALARM
- USAGE_NOTIFICATION
- USAGE_NOTIFICATION_TELEPHONY_RINGTONE
- USAGE_NOTIFICATION_COMMUNICATION_REQUEST
- USAGE_NOTIFICATION_COMMUNICATION_INSTANT
- USAGE_NOTIFICATION_COMMUNICATION_DEED
- USAGE_NOTIFICATION_EVENT
- USAGE_ASSISTANCE_ACCESSIBILITY
- توجيه USAGE_ASSISTANCE_NAVIGATION_التوجيه
- USAGE_ASSISTANCE_SONIFICATION
- لعبة USAGE
- مصدر_USAGE_VIRTUAL_SOURCE
- USAGE_ASSISTANT
لا يمكن استخدام قيم استخدام سمة الصوت. على سبيل المثال، راجع
USAGE_MEDIA
أو
USAGE_ALARM
التعريفات بالنسبة إلى الاستثناءات، يُرجى الرجوع إلى
AudioAttributes.Builder
التعريف.
نوع المحتوى
يحدد نوع المحتوى ماهية الصوت ويعبر عن الفئة العامة
المحتوى مثل فيلم أو كلام أو صفارة أو نغمة رنين. يستخدم إطار العمل الصوتي
معلومات حول نوع المحتوى لضبط إعدادات معالجة الصوت بعد المعالجة بشكل انتقائي
مربّعات. على الرغم من أنّ توفير نوع المحتوى اختياري، يجب تضمين القيمة "type" (النوع).
المعلومات كلما كان نوع المحتوى معروفًا، مثل استخدام
CONTENT_TYPE_MOVIE
لخدمة بث أفلام أو
CONTENT_TYPE_MUSIC
لتطبيق تشغيل الموسيقى.
أدخِل إحدى قيم نوع المحتوى التالية لأي مثال:
CONTENT_TYPE_UNKNOWN
(تلقائي)CONTENT_TYPE_MOVIE
CONTENT_TYPE_MUSIC
CONTENT_TYPE_SONIFICATION
CONTENT_TYPE_SPEECH
تتعدى قيم أنواع محتوى سمات الصوت بعضها البعض. للحصول على تفاصيل حول أنواع المحتوى يُرجى الرجوع إلى الصوت سمة واجهة برمجة التطبيقات.
السياقات
يتم تحديد كل صوت في Android من خلال التطبيق المسؤول وسبب
لتوليد الصوت ويستخدم جهاز Android هذه المعلومات
لتحديد كيفية تقديم الصوت. في الإصدار Android 8.x والإصدارات الأقدم، يمكن للتطبيقات
الإبلاغ عن سبب إنشاء الصوت باستخدام أنواع البث القديمة (مثل
AudioSystem.STREAM_MUSIC
) أو AudioAttributes
. ضِمن
نظام التشغيل Android 9، AudioAttributes.usage
قيم
على مستوى HAL باعتبارها سياقات.
سياقات صوت HAL | استخدام "السمات الصوتية" |
---|---|
موسيقى | الوسائط |
الأوامر_الصوتية | USAGE_ASSISTANT |
التنقّل | ASSISTANCE_NAVIGATION_التوجيه |
اتصال | التواصل الصوتي |
نغمة الرنين | إخطار_RINGTONE |
الإشعار | الإشعار |
المنبّه | المنبّه |
صوت النظام | المساعدة |
UNKNOWN | UNKNOWN |
يمكنك إضافة إحدى قيم CONTEXT_NUMBER
التالية لأي من القيم التالية:
مثال:
- MUSIC_CONTEXT // تشغيل الموسيقى
- NAVIGATION_CONTEXT // اتجاهات التنقل
- VOICE_Command_CONTEXT // جلسة طلب صوتي
- CALL_RING_CONTEXT // رنين مكالمة صوتية
- CALL_CONTEXT // مكالمة صوتية
- ALARM_CONTEXT // صوت التنبيه من Android
- NOTIFICATION_CONTEXT // الإشعارات
- SYSTEM_CONTENT_CONTEXT // أصوات تفاعل المستخدم (النقرات على الأزرار وما إلى ذلك)
أعلام
تحدّد العلامات طريقة تطبيق إطار عمل الصوت للتأثيرات على تشغيل الصوت. أرسل علامة أو أكثر من العلامات التالية لمثيل:
FLAG_AUDIBILITY_ENFORCED
تطلب من النظام ضمان إمكانية سماع الصوت. استخدامها لتلبية احتياجات الأعمال القديمةSTREAM_SYSTEM_ENFORCED
(مثل فرض أصوات إغلاق الكاميرا)HW_AV_SYNC
يطلب من النظام اختيار مصدر بيانات. يدعم مزامنة الصوت والصورة على الجهاز.
وتعد علامات السمات الصوتية غير حصرية ويمكن دمجها. للحصول على تفاصيل حول هذه العلامات، فيمكنك الرجوع إلى الصوت سمة واجهة برمجة التطبيقات.
مثال
في هذا المثال، تحدّد AudioAttributes.Builder
سيتم استخدام AudioAttributes
في AudioTrack
جديد.
مثال:
AudioTrack myTrack = new AudioTrack( new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build(), myFormat, myBuffSize, AudioTrack.MODE_STREAM, mySession);
التوافق
على مطوّري التطبيقات استخدام سمات الصوت عند الإنشاء أو التحديث تطبيقات Android 5.0 والإصدارات الأحدث. ومع ذلك، لا يتم تحميل التطبيقات مطلوبة من أجل الاستفادة من السمات؛ يمكنه التعامل مع أنواع البث القديمة فقط أو تظل غير على علم بالسمات (مثل مشغل وسائط عام لا معرفة أي شيء عن المحتوى الذي يتم تشغيله).
وفي هذه الحالات، يحافظ إطار العمل على التوافق مع الأنظمة القديمة الأجهزة وإصدارات Android من خلال ترجمة البث الصوتي القديم تلقائيًا الأنواع إلى سمات الصوت. ومع ذلك، لا يفرض إطار العمل أو تضمن عملية الربط هذه على جميع الأجهزة أو الشركات المصنّعة أو إصدارات Android.
تعيينات التوافق:
Android 5.0 والإصدارات الأحدث | Android 4.4 والإصدارات الأقدم |
---|---|
CONTENT_TYPE_SPEECH USAGE_VOICE_COMMUNICATION
|
STREAM_VOICE_CALL
|
CONTENT_TYPE_SONIFICATION USAGE_ASSISTANCE_SONIFICATION
|
STREAM_SYSTEM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION_RINGTONE
|
STREAM_RING
|
CONTENT_TYPE_MUSIC USAGE_UNKNOWN USAGE_MEDIA USAGE_GAME USAGE_ASSISTANCE_ACCESSIBILITY USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
|
STREAM_MUSIC
|
CONTENT_TYPE_SONIFICATION USAGE_ALARM
|
STREAM_ALARM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION USAGE_NOTIFICATION_COMMUNICATION_REQUEST USAGE_NOTIFICATION_COMMUNICATION_INSTANT USAGE_NOTIFICATION_COMMUNICATION_DELAYED USAGE_NOTIFICATION_EVENT
|
STREAM_NOTIFICATION
|
CONTENT_TYPE_SPEECH
|
(@إخفاء) STREAM_BLUETOOTH_SCO
|
FLAG_AUDIBILITY_ENFORCED
|
(@إخفاء) STREAM_SYSTEM_ENFORCED
|
CONTENT_TYPE_SONIFICATION USAGE_VOICE_COMMUNICATION_SIGNALLING
|
(@إخفاء) STREAM_DTMF
|
أنواع أحداث البث التي تم إيقافها نهائيًا
يوقِف Android 9 نهائيًا أنواع مصادر البيانات التالية: استخدام السيارات:
- البث_التلقائي
- STREAM_VOICE_CALL
- نظام_البث
- حلقة_البث
- موسيقى البث
- البث_ALARM
- STREAM_NOTIFICATION
- البث_ BLUETOOTH_SCO
- مجموعة_SYSTEM_ENFORCED
- البث_DTMF
- البث_بتنسيق TTS
- إمكانية الوصول إلى البث
لمزيد من التفاصيل، يُرجى مراجعة الإعدادات الصوتية للسيارات: