অডিও বৈশিষ্ট্য

অডিও প্লেয়ারগুলি এমন বৈশিষ্ট্যগুলিকে সমর্থন করে যা অডিও সিস্টেম কীভাবে নির্দিষ্ট উত্সের জন্য রাউটিং, ভলিউম এবং ফোকাস সিদ্ধান্তগুলি পরিচালনা করে তা নির্ধারণ করে। অ্যাপ্লিকেশনগুলি একটি অডিও প্লেব্যাকের বৈশিষ্ট্যগুলি সংযুক্ত করতে পারে (যেমন একটি স্ট্রিমিং পরিষেবা দ্বারা বাজানো সঙ্গীত বা একটি নতুন ইমেলের জন্য একটি বিজ্ঞপ্তি) তারপর অডিও উত্স বৈশিষ্ট্যগুলিকে ফ্রেমওয়ার্কে পাস করতে পারে, যেখানে অডিও সিস্টেম মিশ্রণের সিদ্ধান্ত নিতে এবং অ্যাপ্লিকেশনগুলিকে বিজ্ঞপ্তি দেওয়ার জন্য বৈশিষ্ট্যগুলি ব্যবহার করে৷ সিস্টেমের অবস্থা সম্পর্কে।

অ্যান্ড্রয়েড 4.4 এবং তার আগের, ফ্রেমওয়ার্ক শুধুমাত্র অডিও স্ট্রিম টাইপ ব্যবহার করে মিক্সিং সিদ্ধান্ত নিয়েছে। যাইহোক, স্ট্রিম টাইপের উপর এই ধরনের সিদ্ধান্তগুলিকে ভিত্তি করে একাধিক অ্যাপ্লিকেশন এবং ডিভাইস জুড়ে গুণমানের আউটপুট তৈরি করা খুব সীমাবদ্ধ ছিল। উদাহরণস্বরূপ, একটি মোবাইল ডিভাইসে, কিছু অ্যাপ্লিকেশান (যেমন Google মানচিত্র) STREAM_MUSIC স্ট্রীম প্রকারে ড্রাইভিং দিকনির্দেশ চালায়; যাইহোক, প্রজেকশন মোডে মোবাইল ডিভাইসে (যেমন অ্যান্ড্রয়েড অটো), অ্যাপ্লিকেশনগুলি অন্যান্য মিডিয়া স্ট্রিমগুলির সাথে ড্রাইভিং দিকনির্দেশ মিশ্রিত করতে পারে না।

অডিও অ্যাট্রিবিউট এপিআই ব্যবহার করে, অ্যাপ্লিকেশনগুলি অডিও সিস্টেমকে একটি নির্দিষ্ট অডিও উত্স সম্পর্কে বিস্তারিত তথ্য প্রদান করে, যার মধ্যে ব্যবহার (কেন উৎসটি চলছে), বিষয়বস্তুর ধরন (উৎসটি কী চলছে), পতাকা (কীভাবে উত্সটি চালানো উচিত), এবং প্রসঙ্গ (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_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 ডিভাইস কিভাবে শব্দ উপস্থাপন করতে হয় তা নির্ধারণ করতে এই তথ্য ব্যবহার করে। অ্যান্ড্রয়েড 8.x এবং তার নিচের সংস্করণে, অ্যাপ্লিকেশনগুলি লিগ্যাসি স্ট্রিম প্রকারগুলি (যেমন AudioSystem.STREAM_MUSIC ) বা AudioAttributes ব্যবহার করে সাউন্ড জেনারেশনের কারণ রিপোর্ট করতে পারে৷ Android 9-এ, AudioAttributes.usage মানগুলি HAL স্তরে প্রসঙ্গ হিসাবে বিমূর্ত করা হয়।

HAL অডিও প্রসঙ্গ অডিও অ্যাট্রিবিউটের ব্যবহার
সঙ্গীত মিডিয়া
VOICE_COMMAND 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 । হার্ডওয়্যার A/V সিঙ্ক্রোনাইজেশন সমর্থন করে এমন একটি আউটপুট স্ট্রিম নির্বাচন করার জন্য সিস্টেমকে অনুরোধ করে।

অডিও অ্যাট্রিবিউট ফ্ল্যাগগুলি অ-এক্সক্লুসিভ এবং একত্রিত করা যেতে পারে। এই পতাকাগুলির বিশদ বিবরণের জন্য, অডিও বৈশিষ্ট্য API পড়ুন।

উদাহরণ

এই উদাহরণে, AudioAttributes.Builder একটি নতুন AudioTrack উদাহরণ দ্বারা ব্যবহার করা AudioAttributes সংজ্ঞায়িত করে:

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 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_DEFAULT
  • STREAM_VOICE_CALL
  • স্ট্রিম_সিস্টেম
  • স্ট্রিম_রিং
  • স্ট্রিম_মিউজিক
  • STREAM_ALARM
  • STREAM_NOTIFICATION
  • STREAM_BLUETOOTH_SCO
  • STREAM_SYSTEM_ENFORCED
  • STREAM_DTMF
  • স্ট্রিম_টিটিএস
  • STREAM_ACCESSIBILITY

আরো বিস্তারিত জানার জন্য, স্বয়ংচালিত অডিও দেখুন।