تدعم مشغلات الصوت السمات التي تحدد كيفية تعامل نظام الصوت مع قرارات التوجيه ومستوى الصوت والتركيز للمصدر المحدد. يمكن للتطبيقات إرفاق سمات بتشغيل الصوت (مثل الموسيقى التي يتم تشغيلها بواسطة خدمة البث أو إشعار لبريد إلكتروني جديد) ثم تمرير سمات مصدر الصوت إلى إطار العمل، حيث يستخدم نظام الصوت السمات لاتخاذ قرارات المزج وإخطار التطبيقات عن حالة النظام.
في Android 4.4 والإصدارات الأقدم، اتخذ إطار العمل قرارات خلط باستخدام نوع الدفق الصوتي فقط. ومع ذلك، كان استناد مثل هذه القرارات على نوع الدفق محدودًا جدًا لإنتاج مخرجات عالية الجودة عبر تطبيقات وأجهزة متعددة. على سبيل المثال، على جهاز محمول، قامت بعض التطبيقات (مثل خرائط Google) بتشغيل اتجاهات القيادة على نوع الدفق STREAM_MUSIC؛ ومع ذلك، على الأجهزة المحمولة في وضع العرض (أي Android Auto)، لا يمكن للتطبيقات مزج اتجاهات القيادة مع تدفقات الوسائط الأخرى.
باستخدام Audio Attribute API ، تزود التطبيقات النظام الصوتي بمعلومات تفصيلية حول مصدر صوت محدد، بما في ذلك الاستخدام (لماذا يتم تشغيل المصدر)، ونوع المحتوى (ما يقوم المصدر بتشغيله)، والأعلام (كيفية تشغيل المصدر)، والسياقات (جديد في Android 9). بناء الجملة:
AudioAttributes { mUsage mContentType mSource mFlags mTags / mFormattedTags / mBundle (key value pairs) }
- الاستخدام . يحدد سبب تشغيل المصدر ويتحكم في قرارات التوجيه والتركيز ومستوى الصوت.
- نوع المحتوى . يحدد ما يقوم المصدر بتشغيله (موسيقى، فيلم، كلام، صوتنة، غير معروف).
- سياق . قيم الاستخدام المستخرجة إلى طبقة تجريد الصوت (HAL) الصوتية.
- أعلام . يحدد كيفية تشغيل المصدر. يتضمن دعمًا لفرض إمكانية السمع (أصوات مصراع الكاميرا مطلوبة في بعض البلدان) ومزامنة الصوت/الفيديو للأجهزة.
بالنسبة للمعالجة الديناميكية، يجب أن تميز التطبيقات بين محتوى الأفلام والموسيقى والكلام. قد تكون المعلومات المتعلقة بالبيانات نفسها مهمة أيضًا، مثل جهارة الصوت وقيمة العينة القصوى.
استخدم السمات
يحدد الاستخدام السياق الذي يتم فيه استخدام الدفق، مما يوفر معلومات حول سبب تشغيل الصوت والغرض من استخدام الصوت. تعد معلومات الاستخدام أكثر تعبيرًا من نوع الدفق وتسمح للأنظمة الأساسية أو سياسات التوجيه بتحسين قرارات الحجم أو التوجيه.
قم بتوفير إحدى قيم الاستخدام التالية لأي مثيل:
- USAGE_UNKNOWN
- USAGE_MEDIA
- USAGE_VOICE_COMMUNICATION
- USAGE_VOICE_COMMUNICATION_SIGNALLING
- USAGE_ALARM
- USAGE_NOTIFICATION
- USAGE_NOTIFICATION_TELEPHONY_RINGTONE
- USAGE_NOTIFICATION_COMMUNICATION_REQUEST
- USAGE_NOTIFICATION_COMMUNICATION_INSTANT
- USAGE_NOTIFICATION_COMMUNICATION_DELAYED
- USAGE_NOTIFICATION_EVENT
- USAGE_ASSISTANCE_ACCESSIBILITY
- USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
- USAGE_ASSISTANCE_SONIFICATION
- USAGE_GAME
- USAGE_VIRTUAL_SOURCE
- USAGE_ASSSISTANT
قيم استخدام سمة الصوت هي قيم متبادلة. للحصول على أمثلة، راجع تعريفات USAGE_MEDIA
و USAGE_ALARM
؛ للحصول على الاستثناءات، راجع تعريف AudioAttributes.Builder
.
نوع المحتوى
يحدد نوع المحتوى ماهية الصوت ويعبر عن الفئة العامة للمحتوى مثل الفيلم أو الكلام أو التنبيه/نغمة الرنين. يستخدم إطار الصوت معلومات نوع المحتوى لتكوين كتل الصوت بعد المعالجة بشكل انتقائي. على الرغم من أن توفير نوع المحتوى يعد أمرًا اختياريًا، يجب عليك تضمين معلومات النوع عندما يكون نوع المحتوى معروفًا، مثل استخدام 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_ASSSISTANT |
ملاحة | ASSISTANCE_NAVIGATION_GUIDANCE |
يتصل | VOICE_COMMUNICATION |
نغمة الرنين | نغمة إعلام |
إشعار | إشعار |
إنذار | إنذار |
SYSTEM_SOUND | مساعدة_SONIFICATION |
مجهول | مجهول |
يمكنك توفير إحدى قيم CONTEXT_NUMBER
التالية لأي مثيل:
- MUSIC_CONTEXT // تشغيل الموسيقى
- NAVIGATION_CONTEXT // اتجاهات التنقل
- VOICE_COMMAND_CONTEXT // جلسة الأوامر الصوتية
- CALL_RING_CONTEXT // رنين المكالمة الصوتية
- CALL_CONTEXT // مكالمة صوتية
- ALARM_CONTEXT // صوت التنبيه من Android
- NOTIFICATION_CONTEXT // الإخطارات
- SYSTEM_SOUND_CONTEXT // أصوات تفاعل المستخدم (نقرات الزر، وما إلى ذلك)
أعلام
تحدد العلامات كيفية تطبيق إطار الصوت للتأثيرات على تشغيل الصوت. قم بتوفير واحدة أو أكثر من العلامات التالية لمثيل:
-
FLAG_AUDIBILITY_ENFORCED
. يطلب من النظام التأكد من سماع الصوت. يُستخدم لتلبية احتياجاتSTREAM_SYSTEM_ENFORCED
القديم (مثل فرض أصوات مصراع الكاميرا). -
HW_AV_SYNC
. يطلب من النظام تحديد دفق إخراج يدعم مزامنة الصوت والصورة للأجهزة.
إشارات سمات الصوت غير حصرية ويمكن دمجها. للحصول على تفاصيل حول هذه العلامات، راجع API السمة الصوتية .
مثال
في هذا المثال، يحدد 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.
تعيينات التوافق:
أندرويد 5.0 والإصدارات الأحدث | أندرويد 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
- نظام البث
- تيار_رينج
- STREAM_MUSIC
- STREAM_ALARM
- STREAM_NOTIFICATION
- STREAM_BLUETOOTH_SCO
- STREAM_SYSTEM_ENFORCED
- STREAM_DTMF
- STREAM_TTS
- إمكانية الوصول إلى البث
لمزيد من التفاصيل، راجع صوت السيارات .