VoIP অ্যাপের জন্য Android 14-এ অডিও রাউটিং API আপডেট

অ্যান্ড্রয়েড 14 শ্রবণযন্ত্র সহ ব্লুটুথ LE অডিও (LEA) ডিভাইসগুলির জন্য অডিও রাউটিং আচরণে ব্যবহারকারীর অভিজ্ঞতার পরিবর্তন সহ API আপডেটগুলি চালু করেছে। এই পরিবর্তনগুলি প্রভাবিত করেছে কিভাবে VoIP অ্যাপগুলি অডিও আউটপুট নির্বাচন পরিচালনা করে। এই দস্তাবেজটি বিকাশকারীদের তাদের VoIP অ্যাপগুলিকে এই পরিবর্তনগুলির সাথে খাপ খাইয়ে নিতে এবং একটি বিরামহীন ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে প্রয়োজনীয় তথ্য সরবরাহ করে।

Android 14-এ আচরণের পরিবর্তন

  • LEA ডিভাইস রাউটিং: LEA ডিভাইসগুলি এখন পিক্সেল ফোন এবং AOSP-এ ডিফল্টরূপে সক্ষম করা আছে। যাইহোক, সক্রিয়ভাবে LEA ডিভাইসগুলিকে অডিও আউটপুট হিসাবে চিনতে এবং নির্বাচন করতে, অ্যাপগুলিকে API স্তর 31-এ প্রবর্তিত নতুন API ব্যবহার করতে হবে।
  • হিয়ারিং এইড রাউটিং: পূর্বে, অডিও সর্বদা শ্রবণ সহায়কের সাথে ডিফল্ট হত, এমনকি ব্যবহারকারী স্পষ্টভাবে ইয়ারপিস নির্বাচন করলেও। অ্যান্ড্রয়েড 14-এ, হিয়ারিং এইডগুলি এখন উপলব্ধ অডিও আউটপুট বিকল্পগুলির মধ্যে একটি হিসাবে উপস্থাপন করা হয়েছে, ব্যবহারকারীর দ্বারা স্পষ্ট নির্বাচনের প্রয়োজন।

পরিবর্তনের জন্য যুক্তি

  • অ্যান্ড্রয়েড 12-এর আগে, কলের জন্য সুস্পষ্টভাবে শ্রবণ সহায়ক ব্যবহার করার জন্য কোনও API ছিল না, যার ফলে সংযুক্ত থাকাকালীন অডিও সর্বদা হিয়ারিং এইডের সাথে ডিফল্ট হয়।
  • এটি ব্যবহারকারীদের শ্রবণ সহায়ক যন্ত্রের সংযোগ বিচ্ছিন্ন না করে শ্রবণযন্ত্র থেকে ইয়ারপিসে পরিবর্তন করা কঠিন করে তুলেছে।
  • ব্লুটুথ LE অডিও হেডসেটগুলিতে একই সমস্যা প্রযোজ্য৷

এই চ্যালেঞ্জগুলি মোকাবেলা করার জন্য, Android 14 অডিও রাউটিং এর উপর আরো নিয়ন্ত্রণ সহ VoIP অ্যাপ প্রদান করতে এবং ব্লুটুথ আনুষাঙ্গিক জুড়ে সামঞ্জস্যপূর্ণ আচরণ নিশ্চিত করতে পরিবর্তনগুলি প্রবর্তন করেছে।

Android 14-এ মূল পরিবর্তন

  • রুট নির্বাচনের জন্য জেনেরিক এপিআই: Android 12 শ্রবণ সহায়ক এবং LEA ডিভাইস সহ অ্যাপগুলিকে অডিও রুটগুলি নির্দিষ্ট করার অনুমতি দেওয়ার জন্য AudioManager.setCommunicationDevice চালু করেছে। যাইহোক, অ্যান্ড্রয়েড 12 এবং 13-এ, শ্রবণযন্ত্রগুলি ডিভাইস হিসাবে দৃশ্যমান ছিল না, যা এই API-এর উপযোগিতাকে সীমিত করে।
  • হিয়ারিং এইড দৃশ্যমানতা: Android 14-এ, হিয়ারিং এইডগুলি এখন ডিভাইস হিসাবে দৃশ্যমান, অ্যাপগুলিকে ব্যবহারকারীদের তাদের পছন্দের অডিও আউটপুট নির্বাচন করতে UI উপাদানগুলি প্রদান করতে সক্ষম করে৷
  • এপিআই অবচয়: অডিও রাউটিং সম্পর্কিত বেশ কয়েকটি এপিআই অ্যান্ড্রয়েড 14-এ অবচয় করা হয়েছে। অডিও আউটপুট নির্বাচন কার্যকরভাবে পরিচালনা করতে বিকাশকারীদের অবশ্যই API স্তর 31-এ প্রবর্তিত নতুন APIগুলিতে স্থানান্তর করতে হবে।

প্রয়োজনীয় ডেভেলপার অ্যাকশন

  • অত্যন্ত প্রস্তাবিত: টেলিকম জেটপ্যাক লাইব্রেরিতে মাইগ্রেট করুন। যদি সম্ভব হয়, স্ট্রীমলাইনড অডিও রাউটিং ম্যানেজমেন্টের জন্য আপনার VoIP অ্যাপটিকে টেলিকম জেটপ্যাক লাইব্রেরিতে স্থানান্তর করুন।
  • মাইগ্রেশন সম্ভব না হলে setCommunicationDevice() বা সর্বশেষ APIs (নীচে তালিকাভুক্ত) ব্যবহার করুন।

অপ্রচলিত API এবং তাদের প্রতিস্থাপন

Android 14-এ অপ্রচলিত নতুন API
AudioManager.isBluetoothScoOn() AudioManager.getCommunicationDevice()
AudioManager.isSpeakerphoneOn()
AudioManager.setSpeakerphoneOn() AudioManager.setCommunicationDevice()
AudioManager.startBluetoothSco()
AudioManager.stopBluetoothSco() AudioManager.clearCommunicationDevice()
Connection.getCallAudioState() জেটপ্যাক:
CallControlScope.getAvailableEndpoints()
CallControlScope.getCurrentCallEndpoint()
CallControlScope#getIsMutedConnection.onMuteStateChanged()

প্ল্যাটফর্ম:
CallEventCallback.onAvailableCallEndpointsChanged()
CallEventCallback.onCallEndpointChanged()
CallEventCallback.onMuteStateChanged()
Connection.onCallAudioStateChanged()
Connection.requestBluetoothAudio() জেটপ্যাক:
CallControlScope#requestEndpointChange()

প্ল্যাটফর্ম:
CallControl#requestCallEndpointChange()
Connection.setAudioRoute()