সাসপেন্ড চলাকালীন অডিও রিসোর্স পরিচালনা করুন

সিস্টেমের স্থিতিশীলতা নিশ্চিত করতে এবং সাসপেন্ড-টু-র‍্যাম (S2R) বা সাসপেন্ড-টু-ডিস্ক (S2D)-এর মতো লো-পাওয়ার স্টেটে প্রবেশ করার সক্ষমতা বজায় রাখতে, পাওয়ার ট্রানজিশনের সময় অডিও রিসোর্সগুলোর যথাযথ ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ।

সিস্টেম যখন সাসপেন্ড প্রক্রিয়া শুরু করে, তখন অ্যাপগুলো সবসময় অডিও ইনপুট বা আউটপুট স্ট্রিম মুক্ত নাও করতে পারে। সক্রিয় অডিও স্ট্রিমগুলো অডিও সাবসিস্টেম এবং অন্তর্নিহিত হার্ডওয়্যারকে নিষ্ক্রিয় হতে বাধা দিতে পারে, যা সিস্টেম-অন-এ-চিপ (SoC)-কে ডিপ স্লিপে প্রবেশ করতে প্রতিবন্ধকতা সৃষ্টি করে। এর ফলে সাসপেন্ড করার প্রচেষ্টা ব্যর্থ হয় এবং বিদ্যুৎ খরচ বেড়ে যায়।

সাসপেন্ড ট্রানজিশনের সময় সক্রিয় অডিও স্ট্রিমগুলো পরিচালনা করার জন্য OEM-দের অবশ্যই তাদের অডিও হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) বাস্তবায়নের মধ্যে একটি শক্তিশালী ফলব্যাক মেকানিজম প্রয়োগ করতে হবে। অ্যাপের আচরণ নির্বিশেষে, প্ল্যাটফর্মের স্থিতিশীলতার জন্য এটি অপরিহার্য।

অ্যাপগুলোর অডিও রিসোর্স সঠিকভাবে পরিচালনা করা উচিত, কিন্তু মৌলিক পাওয়ার স্টেট পরিবর্তনের জন্য সিস্টেম এর উপর নির্ভর করতে পারে না। সিস্টেমের সাসপেন্ড স্টেটে প্রবেশ করার ক্ষমতা নিশ্চিত করতে রিসোর্স নিষ্ক্রিয়করণ কার্যকর করার জন্য অডিও এইচএএল (Audio HAL) হলো উপযুক্ত স্তর। শক্তিশালী পাওয়ার ম্যানেজমেন্টের জন্য আমরা এই পদ্ধতির সুপারিশ করি।

বিদ্যুৎ ব্যবস্থাপনা বাস্তবায়ন করুন

Audio HAL-এ শক্তিশালী পাওয়ার ম্যানেজমেন্ট বাস্তবায়ন করতে, এই ধাপগুলো অনুসরণ করুন:

  1. সিস্টেমের পাওয়ার অবস্থার পরিবর্তন, বিশেষ করে সাসপেন্ড অবস্থায় রূপান্তর শনাক্ত করুন।

  2. সিস্টেমটি স্থগিত হওয়ার প্রস্তুতি নেওয়ার সময়, যদি কোনো অডিও স্ট্রিম (ইনপুট এবং আউটপুট উভয়ই) তখনও সক্রিয় থাকে, তাহলে হস্তক্ষেপ করুন:

    • হার্ডওয়্যার আউটপুট স্ট্রিমগুলো মুক্ত করুন এবং অডিও ফ্রেমওয়ার্ক থেকে আগত ডেটা বাতিল করুন।
    • হার্ডওয়্যার ইনপুট স্ট্রিমগুলো মুক্ত করুন এবং সাইলেন্ট অডিও ফ্রেমওয়ার্কে পাঠান।

    এই HAL-স্তরের পদক্ষেপটি নিশ্চিত করে যে অডিও হার্ডওয়্যার নিষ্ক্রিয় হতে পারে, যার ফলে সিস্টেমটি সফলভাবে সাসপেন্ড হতে পারে, এমনকি যদি কোনো অ্যাপ তার অডিও রিসোর্স মুক্ত না-ও করে থাকে।

  3. সিস্টেম সাসপেন্ড থেকে পুনরায় চালু হলে, অডিও সাবসিস্টেমকে তার সক্রিয় অবস্থায় ফিরিয়ে আনুন। এর জন্য পূর্বে মিউট করা যেকোনো আউটপুট স্ট্রিমকে আনমিউট করতে হবে এবং ইনপুট স্ট্রিমগুলোকে পুনরায় সক্রিয় করতে হবে, যাতে অ্যাপগুলো অডিও প্লেব্যাক ও ক্যাপচার চালিয়ে যেতে পারে।

অ্যাপের উপর প্রভাব

সাসপেন্ড চলাকালীন অডিও রিসোর্সের HAL-স্তরের ব্যবস্থাপনা অ্যাপগুলোকে নিম্নলিখিত উপায়ে প্রভাবিত করে:

  • স্বচ্ছ সাসপেন্ড: মাইক্রোফোন ব্যবহারকারী অ্যাপগুলির জন্য, সিস্টেম সাসপেন্ড (S2D বা S2R চাপলে) স্বচ্ছ হয়।
  • ট্রানজিশনের সময় অডিও মিউট: সাসপেন্ড ট্রানজিশন শুরু হওয়ার পর, HAL-এ সক্রিয় স্ট্রিমগুলো মিউট হয়ে যায়। অ্যাপটি চলতে থাকে, কিন্তু সাসপেন্ড চলাকালীন এটি শুধুমাত্র মিউট করা অডিও গ্রহণ করে।
  • স্বয়ংক্রিয়ভাবে পুনরায় চালু হওয়া: সিস্টেম পুনরায় চালু হলে, অ্যাপটি কোনো রিসোর্স পুনরায় অধিগ্রহণ বা পুনরুদ্ধার কার্যক্রমের প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে আবার আসল অডিও ডেটা গ্রহণ বা প্রেরণ করা শুরু করে।