سمات الصوت

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

في Android 4.4 والإصدارات الأقدم ، اتخذ إطار العمل قرارات مختلطة باستخدام نوع دفق الصوت فقط. ومع ذلك ، كان اعتماد مثل هذه القرارات على نوع الدفق محدودًا للغاية لإنتاج مخرجات عالية الجودة عبر تطبيقات وأجهزة متعددة. على سبيل المثال ، على جهاز محمول ، قامت بعض التطبيقات (مثل خرائط Google) بتشغيل اتجاهات القيادة على نوع دفق STREAM_MUSIC ؛ ومع ذلك ، على الأجهزة المحمولة في وضع العرض (مثل Android Auto) ، لا يمكن للتطبيقات مزج اتجاهات القيادة مع تدفقات الوسائط الأخرى.

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

AudioAttributes {
    mUsage
    mContentType
    mSource
    mFlags
    mTags / mFormattedTags / mBundle    (key value pairs)
}
  • إستعمال . يحدد سبب تشغيل المصدر ويتحكم في قرارات التوجيه والتركيز ومستوى الصوت.
  • نوع المحتوى . يحدد ما يقوم المصدر بتشغيله (موسيقى ، فيلم ، كلام ، صوتنة ، غير معروف).
  • السياق . قيم الاستخدام الملخصة إلى Audio 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_ASSISTANT

قيم استخدام سمة الصوت متنافية. للحصول على أمثلة ، راجع تعريفات 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 هذه المعلومات لتحديد كيفية تقديم الصوت. في الإصدار 8.x من نظام التشغيل Android والإصدارات الأقدم ، يمكن للتطبيقات الإبلاغ عن سبب توليد الصوت باستخدام أنواع الدفق القديمة (مثل AudioSystem.STREAM_MUSIC ) أو AudioAttributes . في Android 9 ، يتم استخراج قيم AudioAttributes.usage على مستوى HAL كسياقات .

سياقات HAL الصوتية استخدام سمات الصوت
موسيقى وسائط
أمر صوتي USAGE_ASSISTANT
ارشاد ASSISTANCE_NAVIGATION_GUIDANCE
يتصل VOICE_COMMUNICATION
نغمة نغمة إعلام
تنبيه تنبيه
إنذار إنذار
SYSTEM_SOUND ASSISTANCE_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 . يطلب من النظام تحديد تدفق الإخراج الذي يدعم مزامنة الصوت / الصورة للأجهزة.

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

مثال

في هذا المثال ، يحدد 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_DEFAULT
  • STREAM_VOICE_CALL
  • STREAM_SYSTEM
  • STREAM_RING
  • STREAM_MUSIC
  • STREAM_ALARM
  • STREAM_NOTIFICATION
  • STREAM_BLUETOOTH_SCO
  • STREAM_SYSTEM_ENFORCED
  • STREAM_DTMF
  • STREAM_TTS
  • سهولة الوصول

لمزيد من التفاصيل ، انظر صوت السيارات .