سمات الصوت

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

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

باستخدام API سمة الصوت ، توفر تطبيقات النظام الصوتي مع معلومات مفصلة حول مصدر الصوت محددة، بما في ذلك استخدام (لماذا يلعب المصدر)، نوع المحتوى (ما يلعب المصدر)، والأعلام (كيف ينبغي ان يلعبه المصدر)، والسياقات (جديد في 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

تكون قيم نوع محتوى سمة الصوت حصرية بشكل متبادل. لمزيد من التفاصيل عن أنواع المحتوى، الرجوع إلى API سمة الصوت .

السياقات

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

علامات سمات الصوت غير حصرية ويمكن دمجها. لمزيد من التفاصيل حول هذه الأعلام، والرجوع إلى 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.

تعيينات التوافق:

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 (hide) STREAM_BLUETOOTH_SCO
FLAG_AUDIBILITY_ENFORCED (hide) STREAM_SYSTEM_ENFORCED
CONTENT_TYPE_SONIFICATION
USAGE_VOICE_COMMUNICATION_SIGNALLING
(hide) 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
  • سهولة الوصول

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