কম্পিউটার

AVPlayer ভিডিও চলা শেষ হলে শনাক্ত করতে কীভাবে সুইফট ব্যবহার করবেন?


সুইফটে একটি ভিডিওর শেষ শনাক্ত করার জন্য আমাদের একটি ভিডিও প্লেয়ার তৈরি করতে হবে, তারপর ভিডিওটি কখন চালানো বন্ধ হয়ে যায় তা সনাক্ত করতে বিজ্ঞপ্তিগুলি ব্যবহার করুন৷ আমরা সুইফটে একটি উদাহরণের সাহায্যে এটি করব।

আসুন একটি প্রকল্প তৈরি করুন এবং এক্সটেনশন "mp4" সহ যেকোনো ভিডিও টেনে আনুন এবং ড্রপ করুন, প্রয়োজনে অনুলিপি সংস্থান নির্বাচন করুন এবং আমাদের প্রকল্পের লক্ষ্যে যোগ করুন৷

এখন আমরা প্রোগ্রামগতভাবে প্রথমে একটি ভিডিও প্লেয়ার তৈরি করব, তারপরে আমরা আমাদের প্রকল্পে ভিডিওটির url তৈরি করব এবং তারপরে আমরা ভিডিওটি চালাব৷

var videoPlayer: AVPlayer!

এখন, viewDidAppear-এ নিম্নলিখিত কোড যোগ করুন।

override func viewDidAppear(_ animated: Bool) {
   super.viewDidAppear(animated)
   let filepath: String? = Bundle.main.path(forResource: "Introduction", ofType: "mp4")
   if let videoPath = filepath {
      let url = URL.init(fileURLWithPath: videoPath)
      videoPlayer = AVPlayer(url: url)
      let playerLayer = AVPlayerLayer(player: videoPlayer)
      playerLayer.frame = self.view.bounds
      self.view.layer.addSublayer(playerLayer)
      videoPlayer.play()
   }
}

উপরের কোডটি একটি ভিডিও প্লেয়ার তৈরি করবে এবং ভিউ কন্ট্রোলারে আমাদের ডিফল্ট ভিউতে এটিকে সাবলেয়ার হিসেবে যুক্ত করবে।

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

NotificationCenter.default.addObserver(self, selector: #selector(videoDidEnd), name:
NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)

এখন আমাদের videoDidEnd পদ্ধতিটিও লিখতে হবে, এই পদ্ধতির ভিতরে আপনি আপনার ইচ্ছামত যেকোন কাজ সম্পাদন করতে পারবেন, আপাতত, ভিডিও শেষ হলে এবং বিজ্ঞপ্তি কেন্দ্র এই পদ্ধতিটিকে কল করলে আমরা শুধু "ভিডিও শেষ" প্রিন্ট করব।

@objc func videoDidEnd(notification: NSNotification) {
   print("video ended")
}

যখন আমরা এই কোডটি চালাই তখন আমরা নিম্নলিখিত ফলাফল পাই৷

AVPlayer ভিডিও চলা শেষ হলে শনাক্ত করতে কীভাবে সুইফট ব্যবহার করবেন?

একবার ভিডিও চালানো বন্ধ হয়ে গেলে আমরা আমাদের কনসোলে আউটপুট পাই৷

AVPlayer ভিডিও চলা শেষ হলে শনাক্ত করতে কীভাবে সুইফট ব্যবহার করবেন?

এখন, উপরের কোডটি আমাদের জন্য প্রয়োজনীয় জিনিসটি করে, কিন্তু দক্ষ মেমরি ব্যবহারের জন্য, আমাদের পর্যবেক্ষককেও অপসারণ করতে হবে, যা নীচের কোড ব্যবহার করে করা যেতে পারে।

deinit {
   NotificationCenter.default.removeObserver(self)
}

  1. প্রতিক্রিয়া নেটিভ-এ ব্যাকগ্রাউন্ড হিসাবে ভিডিও কীভাবে ব্যবহার করবেন

  2. Windows 10 বা 11 এ কিভাবে একটি ভিডিও ওয়ালপেপার ব্যবহার করবেন

  3. আইফোন 8 এর নতুন ভিডিও ফর্ম্যাটগুলি কীভাবে ব্যবহার করবেন?

  4. ভিডিও চালানোর সময় মাইক্রোসফ্ট এজ ক্র্যাশ হচ্ছে কীভাবে ঠিক করবেন