মিডিয়া কন্ট্রোলার টেস্ট অ্যাপ ব্যবহার করা

Android ফোন, গাড়ি, টিভি ও হেডফোনে Google Assistant-এর সাথে ভয়েসের মাধ্যমে ইন্টার‍্যাক্ট করে এমন মিডিয়া অ্যাপ Android মিডিয়া সেশন API দ্বারা পরিচালিত হয় এবং মিডিয়া অ্যাকশন ব্যবহার করে। মিডিয়া অ্যাকশন লাইফসাইকেল অনুসরণ করা কঠিন হতে পারে। এমনকি সার্চ অনুরোধ থেকে একটি সাধারণ প্লে করার ক্ষেত্রেও অনেক মধ্যবর্তী ধাপ থাকে যেখানে কিছু ভুল হতে পারে, যেমনটি সরলীকৃত টাইমলাইনে দেখানো হয়েছে:

মিডিয়া অ্যাকশন লাইফসাইকেল

ছবি ১. মিডিয়া অ্যাকশন লাইফসাইকেল

মিডিয়া কন্ট্রোলার টেস্ট (MCT) অ্যাপ আপনাকে Android-এ মিডিয়া প্লেব্যাকের জটিলতা টেস্ট করতে দেয় এবং আপনার মিডিয়া সেশন প্রয়োগ যাচাই করতে সাহায্য করে।

মিডিয়া কন্ট্রোলার টেস্ট অ্যাপ দুটি ভার্সনে উপলভ্য:

  • ক্লায়েন্ট অ্যাপটি লিগ্যাসি MediaControllerCompat-এর উপরে প্রয়োগ করা হয়। এটি আপনার মিডিয়া সেশন অ্যাপকে টেস্ট করার অনুমতি দেয় যা লিগ্যাসি MediaSessionCompat বা Media3 MediaSession-এর উপরে তৈরি করা হয়েছে যখন লিগ্যাসি MediaControllerCompat-এর মাধ্যমে এক্সটার্নাল অ্যাপ অ্যাক্সেস করে। GitHub-এ পুরনো ভার্সনের সোর্স কোড খুঁজুন।
  • ক্লায়েন্ট অ্যাপটি সবচেয়ে সাম্প্রতিক Media3-এর উপরে প্রয়োগ করা হয়েছে MediaController। এটি আপনাকে পুরনো MediaSessionCompat বা Media3 MediaSession-এর উপর তৈরি করা আপনার মিডিয়া সেশন অ্যাপ পরীক্ষা করার অনুমতি দেয়, যখন কোনও এক্সটার্নাল অ্যাপ Media3 MediaController-এর মাধ্যমে এটি অ্যাক্সেস করে। GitHub-এ Media3 ভার্সনের সোর্স কোড খুঁজুন।

MCT আপনার অ্যাপের MediaController সম্পর্কে তথ্য দেখায়, যেমন এটির PlaybackState এবং মেটাডেটা এবং ইন্টার-অ্যাপ মিডিয়া কন্ট্রোল পরীক্ষা করতে ব্যবহার করা যেতে পারে। এছাড়াও, MCT-তে যাচাইকরণ টেস্টিং ফ্রেমওয়ার্ক অন্তর্ভুক্ত থাকে যা আপনাকে QA টেস্টিং অটোমেট করতে দেয়।

MCT ব্যবহার করার জন্য, আপনার অ্যাপে অবশ্যই একটি মিডিয়া ব্রাউজার পরিষেবা থাকতে হবে এবং আপনাকে অবশ্যই MCT-কে এটির সাথে কানেক্ট করার অনুমতি দিতে হবে। আরও তথ্যের জন্য মিডিয়া ব্রাউজার পরিষেবা তৈরি করা দেখুন।

MCT শুরু করা হচ্ছে

MCT লঞ্চ পৃষ্ঠা
ছবি ২. MCT লঞ্চ পৃষ্ঠা

MCT চালু করলে, আপনি দুটি তালিকা দেখতে পাবেন:

  • অ্যাক্টিভ MediaSessions - আপনি MCT লঞ্চ করলে, এই তালিকাটি প্রথমে খালি থাকে এবং আপনি "কোনও মিডিয়া অ্যাপ পাওয়া যায়নি " মেসেজটি দেখতে পাবেন। অ্যাক্টিভ মিডিয়া সেশন স্ক্যান করার জন্য বিজ্ঞপ্তি শ্রোতার অনুমতি প্রয়োজন।" সেটিংস বিকল্পে ক্লিক করে অনুমতি স্ক্রিনে যান এবং MCT-এর জন্য অনুমতি চালু করুন।
  • MediaBrowserService ইমপ্লিমেন্টেশন - এই তালিকায় সেইসব অ্যাপ দেখানো হয় যেগুলি মিডিয়া ব্রাউজার পরিষেবা ইমপ্লিমেন্ট করেছে। আপনি মিডিয়া ব্রাউজার পরিষেবা প্রয়োগ করলে, আপনার অ্যাপ এই তালিকায় দেখা যাবে, তবে আপনি MCT তখনই ব্যবহার করতে পারবেন যখন আপনি সব কানেকশন গ্রহণ করার জন্য আপনার অ্যাপ কনফিগার করেছেন অথবা MCT-কে সাদাতালিকায় রেখেছেন। আরও তথ্যের জন্য onGetRoot() ব্যবহার করে ক্লায়েন্ট কানেকশন নিয়ন্ত্রণ করা দেখুন।

কোনও ফোন অ্যাপ ম্যানুয়ালি টেস্ট করা

আপনি যদি MCT-কে আপনার অ্যাপের মিডিয়া ব্রাউজার পরিষেবার সাথে কানেক্ট করার অনুমতি দেন, তাহলে আপনার অ্যাপ মিডিয়া ব্রাউজার পরিষেবা তালিকার ইমপ্লিমেন্টেশনের তালিকায় দেখা যাবে। সেখানে এটি খুঁজে নিন এবং ব্যাকগ্রাউন্ডে আপনার অ্যাপ চালু করতে কন্ট্রোল করুন বিকল্পে ক্লিক করুন।

অন্যথায়, আপনাকে প্রথমে ব্যাকগ্রাউন্ডে নিজের অ্যাপ চালু করতে হবে, তারপর চালু থাকা মিডিয়া সেশনের তালিকায় কন্ট্রোল বিকল্পটি দেখা গেলে সেখানে ক্লিক করতে হবে।

প্রস্তুতি ও প্লে করার পরীক্ষা করা হচ্ছে

MCT আপনার অ্যাপ কন্ট্রোল করা শুরু করলে, এটি অ্যাপের বর্তমান সেশন মেটাডেটা দেখায়: বর্তমানে বেছে নেওয়া মিডিয়া এবং সেশনটি যে অ্যাকশনগুলি পরিচালনা করার জন্য প্রস্তুত।

The Control Page
ছবি ৩. কন্ট্রোল পৃষ্ঠা

MCT কন্ট্রোল পৃষ্ঠার সবচেয়ে উপরে একটি ড্রপ-ডাউন মেনু আছে, যেখান থেকে আপনি সার্চ, URI, মিডিয়া আইডি বা কিছুই নয় বিকল্প বেছে নিতে পারবেন। এর সাথে একটি টেক্সট ফিল্ডও আছে, যেখানে আপনি সার্চ, URI বা মিডিয়া আইডি সংক্রান্ত ইনপুট ডেটা উল্লেখ করতে পারবেন, যদি আপনি এই বিকল্পগুলির মধ্যে কোনও একটি বেছে নেন।

টেক্সট ফিল্ডের ঠিক নিচে থাকা প্রস্তুত করুন এবং চালান বোতামগুলি আপনার বেছে নেওয়া অ্যাকশনের উপর নির্ভর করে উপযুক্ত কল (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) করে।

অডিও ফোকাস টেস্ট করা হচ্ছে

একটি ভাল-আচরণকারী মিডিয়া অ্যাপের অডিও ফোকাস পরিচালনা করতে সক্ষম হওয়া উচিত। আপনার অ্যাপের পাশাপাশি অন্য একটি অডিও অ্যাপ চালিয়ে আপনি অডিও ফোকাস পরীক্ষা করতে পারেন। MCT কন্ট্রোল পৃষ্ঠায় একটি বোতাম রয়েছে যা অডিও ফোকাসের অনুরোধ করে এবং রিলিজ করে।

অডিও ফোকাস পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

  1. অডিও ফোকাস ড্রপ-ডাউন মেনু ব্যবহার করে তিনটি সময়সীমার ইঙ্গিতের মধ্যে থেকে একটি বেছে নিন AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT, অথবা AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK।
  2. ফোকাস করার অনুরোধ করতে বোতামটি প্রেস করুন।
  3. ফোকাস রিলিজ করতে আবার বোতাম প্রেস করুন।

ট্রান্সপোর্ট কন্ট্রোল পরীক্ষা করা হচ্ছে

ট্রান্সপোর্ট কন্ট্রোল পরীক্ষা করা হচ্ছে
ছবি ৪. ট্রান্সপোর্ট কন্ট্রোল টেস্ট করা হচ্ছে

MCT-এর UI ভিউ দেখতে বাঁদিকে সোয়াইপ করুন। এই ভিউতে স্ট্যান্ডার্ড মিডিয়া কন্ট্রোলার ট্রান্সপোর্ট বোতাম আছে এবং সেশনের প্রোগ্রাম ইমেজ ও ডেটা দেখায়। বন্ধ করা আছে এমন ট্রান্সপোর্ট বোতাম কমলা রঙে সার্কেল করা আছে। বাকি সব অ্যাক্টিভ আছে।

ট্রান্সপোর্ট বোতাম ব্যবহার করে আপনার প্লেয়ার পরীক্ষা করুন। ট্রান্সপোর্ট বোতামের স্ট্যাটাস প্রত্যাশিতভাবে পরিবর্তন হওয়া উচিত। যেমন, আপনি 'চালান' বোতাম প্রেস করলে সেটি বন্ধ হয়ে যাওয়া উচিত এবং 'পজ করুন' ও 'বন্ধ করুন' বোতাম চালু হয়ে যাওয়া উচিত।

ঐচ্ছিক অ্যাকশন দেখায় এমন ভিউয়ের জন্য আবার বাঁদিকে সোয়াইপ করুন। প্রতিটি অ্যাকশনের একটি কন্ট্রোল আছে যা দেখায় যে এটি অ্যাক্টিভ আছে কিনা। এটি অ্যাক্টিভ থাকলে, আপনি এটিতে ক্লিক করে অ্যাকশনটি করতে পারবেন।

মিডিয়া ব্রাউজার পরিষেবা আছে এমন অ্যাপের তালিকা থেকে কানেক্ট করলে, আপনি আরও দুবার বাঁদিকে সোয়াইপ করে এমন ভিউ দেখতে পাবেন যা আপনাকে অ্যাপের কন্টেন্ট হাইয়ারার্কি উপরে ও নিচে স্ক্রল করতে অথবা কন্টেন্ট ট্রি সার্চ করতে দেবে।

ভিডিও অ্যাপ ম্যানুয়ালি পরীক্ষা করা

ভিডিও অ্যাপ কন্ট্রোলার পরীক্ষা করতে স্প্লিট-স্ক্রিন মোড ব্যবহার করুন। প্রথমে, একটি উইন্ডোতে আপনার ভিডিও অ্যাপ খুলুন এবং তারপরে স্প্লিট-স্ক্রিন মোডে MCT খুলুন।

যাচাইকরণ টেস্ট চলছে

যাচাইকরণ টেস্টিং ফ্রেমওয়ার্ক এক-ক্লিক টেস্টের সুবিধা দেয় যা আপনি চালাতে পারেন যাতে আপনার মিডিয়া অ্যাপ প্লেব্যাক অনুরোধে সঠিকভাবে সাড়া দেয়।

ফোন অ্যাপ টেস্ট করা হচ্ছে

টেস্ট বোতাম
ছবি ৫. টেস্ট বোতাম

যাচাইকরণ পরীক্ষা অ্যাক্সেস করতে, আপনার মিডিয়া অ্যাপের পাশে থাকা পরীক্ষা করুন বোতামে ক্লিক করুন।

MCT স্ট্যাটাস

মিডিয়া কন্ট্রোল স্টেট
ছবি ৬. মিডিয়া কন্ট্রোল স্টেট

পরবর্তী ভিউতে আপনি MCT-এর MediaController সম্পর্কে বিস্তারিত তথ্য দেখতে পাবেন, যেমন PlaybackState, মেটাডেটা এবং সারি। টুলবারের উপরে ডানদিকে দু'টি বোতাম আছে। বাঁদিকের বোতামটি পার্স করা যায় এমন এবং ফর্ম্যাট করা লগের মধ্যে টগল করে। ডানদিকের বোতামটি ভিউ রিফ্রেশ করে সবচেয়ে সাম্প্রতিক তথ্য দেখায়।

টেস্ট বেছে নেওয়া

টেস্ট বেছে নেওয়ার পৃষ্ঠা
ছবি ৭. টেস্ট বেছে নেওয়ার পৃষ্ঠা

বাঁদিকে সোয়াইপ করে, আপনি যাচাইকরণ পরীক্ষার ভিউতে পৌঁছান, যেখানে আপনি উপলভ্য পরীক্ষার একটি স্ক্রলযোগ্য তালিকা দেখতে পাবেন। কোনও টেস্টে কোয়েরি ব্যবহার করা হলে, যেমন ছবি ৭-এ দেখানো সার্চ টেস্ট থেকে প্লে, সেখানে কোয়েরি স্ট্রিং লেখার জন্য একটি টেক্সট ফিল্ড থাকে।

MCT-তে নিম্নলিখিত মিডিয়া অ্যাকশনের জন্য টেস্ট অন্তর্ভুক্ত আছে এবং প্রোজেক্টে আরও টেস্ট ক্রমাগত যোগ করা হচ্ছে:

  • চালান
  • Search থেকে চালান
  • মিডিয়া আইডি থেকে চালান
  • URI থেকে চালান
  • পজ করুন
  • বন্ধ করুন
  • এড়িয়ে পরবর্তী ধাপে যান
  • এড়িয়ে আগের ধাপে যান
  • সারি আইটেমে যান
  • এখানে যান

পরীক্ষার ফলাফল

একটি সফল পরীক্ষার ফলাফল
ছবি ৮. একটি সফল টেস্টের ফলাফল

ভিউয়ের নিচে ফলাফলের জায়গাটি প্রথমে খালি থাকে। আপনি টেস্ট চালালে এটি ফলাফল দেখাবে। যেমন, সার্চ টেস্ট থেকে প্লে রান করতে, টেক্সট ফিল্ডে সার্চ কোয়েরি লিখুন এবং টেস্ট রান করুন বিকল্পে ক্লিক করুন। নিম্নলিখিত স্ক্রিনশটে টেস্টের ফলাফল দেখানো হয়েছে।

Android TV অ্যাপ পরীক্ষা করা

Android TV-তে MCT চালু করলে, আপনি ইনস্টল করা মিডিয়া অ্যাপের তালিকা দেখতে পাবেন। মনে রাখবেন যে কোনও অ্যাপ এই তালিকায় তখনই দেখা যাবে যখন এটি মিডিয়া ব্রাউজার পরিষেবা প্রয়োগ করবে।

টিভিতে MCT লঞ্চ পৃষ্ঠা

ছবি ৯. টিভিতে MCT লঞ্চ পৃষ্ঠা

কোনও অ্যাপ বেছে নিলে আপনাকে টেস্টিং স্ক্রিনে নিয়ে যাওয়া হয়, যেখানে ডানদিকে যাচাইকরণ পরীক্ষার তালিকা দেখানো হয়।

টিভিতে যাচাইকরণ টেস্ট পৃষ্ঠা

ছবি ১০. টিভিতে যাচাইকরণ পরীক্ষা পৃষ্ঠা

আপনি কোনও পরীক্ষা চালালে, স্ক্রিনের বাঁদিকে বেছে নেওয়া MediaController সম্পর্কে তথ্য দেখানো হয়। আরও বিবরণের জন্য, Logcat-এ MCT লগ চেক করুন।

টিভিতে টেস্ট সংক্রান্ত তথ্য পৃষ্ঠা

ছবি ১১. টিভিতে টেস্ট সংক্রান্ত তথ্য পৃষ্ঠা

যেসব টেস্টের জন্য কোয়েরি প্রয়োজন সেগুলি কীবোর্ড আইকন দিয়ে চিহ্নিত করা থাকে। এইসব টেস্টের মধ্যে কোনও একটিতে ক্লিক করলে, কোয়েরির জন্য ইনপুট ফিল্ড খুলে যায়। পরীক্ষা চালাতে Enter প্রেস করুন।

টেক্সট ইনপুট করা আরও সহজ করতে, আপনি adb কমান্ডও ব্যবহার করতে পারেন:

adb shell input text your-query

শব্দের মধ্যে স্পেস যোগ করতে আপনি "%s" ব্যবহার করতে পারেন। যেমন, নিম্নলিখিত কমান্ড ইনপুট ফিল্ডে "হ্যালো ওয়ার্ল্ড" টেক্সট যোগ করে।

adb shell input text hello%sworld

টেস্ট তৈরি করা হচ্ছে

আপনি আরও টেস্ট সহ পুল রিকোয়েস্ট জমা দিতে পারেন যা আপনার কাছে উপযোগী বলে মনে হয়। নতুন টেস্ট কীভাবে তৈরি করতে হয় তা জানতে, MCT GitHub Wiki দেখুন এবং যাচাইকরণ টেস্ট সংক্রান্ত নির্দেশাবলী দেখুন।

আরও তথ্যের জন্য, কন্ট্রিবিউশন সংক্রান্ত নির্দেশাবলী পর্যালোচনা করুন।

অতিরিক্ত রিসোর্স

MCT-কে এমন অ্যাপের সাথে ব্যবহার করতে হবে যা মিডিয়া API প্রয়োগ করে। এই ধরনের অ্যাপের উদাহরণ দেখতে Universal Android Music Player দেখুন।

সমস্যার সমাধান ও উন্নতি সবসময় স্বাগত। অবদান সংক্রান্ত নির্দেশাবলী দেখুন।