আমি একটি আইফোন অ্যাপ্লিকেশন বিকাশ করছি যা ভিডিও প্লে করা প্রয়োজন। এখনও অবধি, আমি শিখেছি যে এটি অর্জনের জন্য কমপক্ষে দুটি এপিআই রয়েছে; AVPlayer
এবং MPMoviePlayerController
।
মূল পার্থক্য কি কি?
আমি একটি আইফোন অ্যাপ্লিকেশন বিকাশ করছি যা ভিডিও প্লে করা প্রয়োজন। এখনও অবধি, আমি শিখেছি যে এটি অর্জনের জন্য কমপক্ষে দুটি এপিআই রয়েছে; AVPlayer
এবং MPMoviePlayerController
।
মূল পার্থক্য কি কি?
উত্তর:
উল্লেখ্য iOS9 হিসাবে অ্যাপল MPMoviePlayerController অবচিত হয়েছে:
আইপিএস 9-এ এমপিএমভিয়েপ্লেয়ারকন্ট্রোলার ক্লাসটি আনুষ্ঠানিকভাবে হ্রাস পেয়েছে (
MPMoviePlayerController রেফারেন্স থেকে অনুলিপি করা হয়েছে ।
AVPlayer
আপনাকে অনেক বেশি নমনীয়তা দেয় তবে এটি খুব কম নথিভুক্ত। এই এপিআই ব্যবহার করে আপনাকে আপনার নিজস্ব ইউআই তৈরি করতে বাধ্য করবে। AVFoundation
(যে কাঠামোটি আপনাকে এনে দেয় AVPlayer
) সাধারণত ব্যবহারকারীর (কোডার) উপরে কিছুটা শক্ত হয় কারণ এটি আপনাকে চেক করার রাষ্ট্রগুলির জন্য প্রচুর পর্যবেক্ষণের মূল-মানটি ব্যবহার করতে বাধ্য করে । কেভিওর ধারণাটি দুর্দান্ত, আমাকে ভুল করবেন না - তবুও, অদক্ষ অভিজ্ঞ বিকাশকারীদের পক্ষে এটি শেখা বেদনাদায়ক হতে পারে। অ্যাপল কখনও কখনও সেই তথ্যগুলি বাদ দেয় যেখানে কোন বৈশিষ্ট্যগুলি আসলে কেভিওর অনুগত এবং এটি আপনাকে কিছু পরীক্ষা-নিরীক্ষা করতে বাধ্য করবে।
AVPlayer
ওভারের একটি বড় সুবিধা MPMoviePlayerController
উদাহরণস্বরূপ এর বর্ধিত সংস্করণ হবে AVQueuePlayer
কারণ এটি একাধিক চলচ্চিত্র উত্সের ফাঁকবিহীন প্লেব্যাক করতে সক্ষম। আরেকটি সুবিধা অবশ্যই বৈশিষ্ট্য সমৃদ্ধ AVFoundation
কাঠামো যা আপনাকে ফ্লাই সিনেমার রচনা / এনকোডিং / রূপান্তরকরণের মতো কাজ করতে দেয় do
তবুও এর আরও একটি বিশাল সুবিধা AVPlayer
হ'ল আপনি যে কোনও সমস্যা ছাড়াই প্রকৃতপক্ষে একাধিক ভিডিও উত্স একই সাথে (যেমন পাশাপাশি পাশাপাশি) খেলতে পারেন।
MPMoviePlayerController
ব্যবহার করা সহজ এবং বাক্সের বাইরে বেশিরভাগ প্রয়োজনীয়তা কভার করে। এই এপিআই ব্যবহার করা আপনাকে ভাল চেহারা এবং সাধারণত বোঝা UI দেবে। ইউআই তবে অক্ষম করা যেতে পারে বা একটি কাস্টম দিয়ে প্রতিস্থাপন করা যেতে পারে।
স্থিতি পরিবর্তনের জন্য, নিয়মিত অ্যাপের প্রয়োজন অনুসারে MPMoviePlayerController
কিছু কিছু ব্যবহার করে NSNotifications
।
হুডের নীচে, MPMoviePlayerController
উপরে তৈরি হয় AVPlayer
- তবে এটি ব্যবহারকারীর কাছে আসলে সম্পূর্ণ স্বচ্ছ হয় - ব্যবহার করার সময় আপনার সেই স্তরটিতে অ্যাক্সেস নেই MPMoviePlayerController
।
MPMoviePlayerController
AVPlayer
একক উদাহরণ হিসাবে আন্ডারলাইংটি ব্যবহার করে , সুতরাং MPMoviePlayerController
একসাথে ভিডিওগুলি প্লে করার একাধিক উদাহরণ ব্যবহার করা সম্ভব নয় ।
অন্যদিকে, আপনি MPMoviePlayerController
নিজের বৈশিষ্ট্যগুলির সাথে কার্যকারিতা প্রসারিত করার চেষ্টা করার সাথে সাথে কোডটি দ্রুত অদ্ভুত হয়ে যায় - উদাহরণস্বরূপ আপনি যথাযথ অনাহারে সনাক্তকরণের মতো জিনিসগুলি আচ্ছাদন করার জন্য একাধিক টাইমার ব্যবহার শুরু করবেন (আসলে, সেই বৈশিষ্ট্যটি অন্তর্ভুক্ত হয়ে গেছে) আইওএস 5 এর এই শ্রেণীর সংস্করণে), কাস্টম ইউআই আপডেটস, ... বা প্লেয়ারটি প্রাক-বাফারিংয়ের সময় প্লেব্যাকটি নিখুঁতভাবে বাতিল করার মতো জিনিসগুলি coverাকতে চেষ্টা করার মতো কয়েকটি মুখ্য রাষ্ট্রের সম্পত্তি অর্জন করতে পারে।
ব্যক্তিগত সুপারিশ
আমি উভয় ব্যবহার করেছি এবং আমি অ্যাপ্লিকেশনটির প্রয়োজনীয়তার উপর নির্ভর করে উভয় ব্যবহার চালিয়ে যাব যা আমার পক্ষে আনন্দিত। বেশিরভাগ (সাধারণ) প্রকল্পগুলির জন্য, আমি এটি ব্যবহার MPMoviePlayerController
করার পরামর্শ দিচ্ছি কারণ এটি ব্যবহার AVPlayer
করা খুব সহজ এবং কেবল কয়েকটি লাইনের কোডের সাহায্যে আপনি একটি পূর্ণাঙ্গ মিডিয়া প্লেয়ার পান। এবং যদি মিডিয়া প্লেব্যাকের উপর আপনার দাবিগুলি আরও সহজ হয় তবে এক নজরে MPMoviePlayerViewController
দেখুন (দেখুন যে অংশটি দেখুন)।
backgroundView
।