سمات الصوت

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

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

لمزيد من التفاصيل، يُرجى مراجعة الإعدادات الصوتية للسيارات: