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

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

PlayerView এর জন্য একটি পৃষ্ঠের ধরন চয়ন করুন

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

  • 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 স্তরকে উন্নত করে।

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

রচনায় একটি পৃষ্ঠের ধরন চয়ন করুন

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

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

none টাইপ নেই, যেহেতু এটি আপনার কম্পোজ UI ট্রিতে PlayerSurface অন্তর্ভুক্ত না করার সাথে সঙ্গতিপূর্ণ হবে।

,

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

PlayerView এর জন্য একটি পৃষ্ঠের ধরন চয়ন করুন

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

  • 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 স্তরকে উন্নত করে।

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

রচনায় একটি পৃষ্ঠের ধরন চয়ন করুন

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

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

none টাইপ নেই, যেহেতু এটি আপনার কম্পোজ UI ট্রিতে PlayerSurface অন্তর্ভুক্ত না করার সাথে সঙ্গতিপূর্ণ হবে।