সারফেস প্রকার, সারফেস প্রকার

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

PlayerView এর জন্য একটি পৃষ্ঠের ধরণ বেছে নিন

PlayerView এর surface_type অ্যাট্রিবিউট আপনাকে ভিডিও প্লেব্যাকের জন্য ব্যবহৃত surface এর ধরণ সেট করতে দেয়। অনুমোদিত মানগুলি হল:

  • surface_view ( SurfaceView )
  • texture_view ( TextureView )
  • spherical_gl_surface_view ( SphericalGLSurfaceView ) - গোলাকার ভিডিও প্লেব্যাকের জন্য
  • video_decoder_gl_surface_view ( VideoDecoderGLSurfaceView ) - এক্সটেনশন রেন্ডারার ব্যবহার করে ভিডিও রেন্ডারিং
  • none - যা শুধুমাত্র অডিও প্লেব্যাকের জন্য এবং এটি ব্যবহার করা উচিত যাতে কোনও সারফেস তৈরি করতে না হয় কারণ এটি করা ব্যয়বহুল হতে পারে।

যদি ভিউটি নিয়মিত ভিডিও প্লেব্যাকের জন্য হয় তাহলে surface_view অথবা texture_view ব্যবহার করা উচিত। ভিডিও প্লেব্যাকের জন্য TextureView তুলনায় SurfaceView বেশ কিছু সুবিধা রয়েছে:

  • অনেক ডিভাইসে উল্লেখযোগ্যভাবে কম বিদ্যুৎ খরচ
  • আরও সঠিক ফ্রেম টাইমিং, যার ফলে ভিডিও প্লেব্যাক মসৃণ হয়।
  • সক্ষম ডিভাইসগুলিতে উচ্চ মানের HDR ভিডিও আউটপুটের জন্য সমর্থন।
  • DRM-সুরক্ষিত কন্টেন্ট চালানোর সময় নিরাপদ আউটপুটের জন্য সমর্থন।
  • অ্যান্ড্রয়েড টিভি ডিভাইসে ডিসপ্লের পূর্ণ রেজোলিউশনে ভিডিও কন্টেন্ট রেন্ডার করার ক্ষমতা যা UI স্তরকে উন্নত করে।

তাই সম্ভব হলে TextureView চেয়ে SurfaceView অগ্রাধিকার দেওয়া উচিত। TextureView শুধুমাত্র তখনই ব্যবহার করা উচিত যদি SurfaceView আপনার চাহিদা পূরণ না করে। একটি উদাহরণ হল যেখানে Android 7.0 (API লেভেল 24) এর আগে মসৃণ অ্যানিমেশন বা ভিডিও সারফেসের স্ক্রলিং প্রয়োজন, যেমনটি নিম্নলিখিত নোটগুলিতে বর্ণিত হয়েছে। এই ক্ষেত্রে, TextureView শুধুমাত্র তখনই ব্যবহার করা ভালো যখন SDK_INT 24 (Android 7.0) এর কম থাকে এবং অন্যথায় SurfaceView ভালো।

কম্পোজে একটি পৃষ্ঠের ধরণ বেছে নিন

কম্পোজে, ইন্টারপ সলিউশনটি SurfaceView এবং TextureView মোড়ানোর জন্য AndroidView Composable ব্যবহার করে। এর সাথে সম্পর্কিত দুটি Composable হল AndroidExternalSurface এবং AndroidEmbeddedExternalSurface

Media3 ui-compose মডিউলটি একটি PlayerSurface Composable প্রদান করে যা Player একটি Surface সাথে জীবনচক্র-সচেতনভাবে সংযুক্ত করে। এই ক্ষেত্রে সারফেসের ধরণগুলি হল:

none টাইপ নেই, কারণ এটি আপনার Compose UI ট্রিতে PlayerSurface অন্তর্ভুক্ত না করার সাথে সম্পর্কিত হবে।