سمات الصوت

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

في 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
  • إمكانية الوصول إلى البث

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