From 956fca55eb91f1dcfdd3109255ab905692277359 Mon Sep 17 00:00:00 2001 From: boyeon Date: Mon, 15 Jan 2024 00:12:23 +0900 Subject: [PATCH] =?UTF-8?q?[Feat/#81]=20Handler=20-=20=EB=B9=84=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=ED=95=B8=EB=93=A4=EB=9F=AC=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HMH_iOS/Global/Handler/VideoHandler.swift | 56 ++++++++++++++++--- .../Home/Models/HomeViewTotalDataModel.swift | 8 +++ 2 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 HMH_iOS/HMH_iOS/Presentation/Home/Models/HomeViewTotalDataModel.swift diff --git a/HMH_iOS/HMH_iOS/Global/Handler/VideoHandler.swift b/HMH_iOS/HMH_iOS/Global/Handler/VideoHandler.swift index 9025abc..9f0e1eb 100644 --- a/HMH_iOS/HMH_iOS/Global/Handler/VideoHandler.swift +++ b/HMH_iOS/HMH_iOS/Global/Handler/VideoHandler.swift @@ -1,8 +1,50 @@ -// -// VideoHandler.swift -// HMH_iOS -// -// Created by 김보연 on 1/14/24. -// - import Foundation +import AVFoundation + +class VideoHandler: NSObject { + var avPlayer: AVPlayer? = AVPlayer() + + override init() { + super.init() + self.addObserver() + } + + func bindVideoItem(videoURL: URL) { + DispatchQueue.main.async { + let avPlayerItem = AVPlayerItem(url: videoURL) + self.avPlayer?.replaceCurrentItem(with: avPlayerItem) + self.avPlayer?.play() + } + } + + func removeEndTimeObserver() { + NotificationCenter.default.removeObserver(self, + name: .AVPlayerItemDidPlayToEndTime, + object: self.avPlayer?.currentItem) + } + + func addObserver() { + NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, + object: self.avPlayer?.currentItem, + queue: nil) { [weak self] (_) in + guard let self else { return } + self.avPlayer?.seek(to: CMTime.zero) + self.avPlayer?.play() + } + } + + + func playVideo() { + self.avPlayer?.play() + } + + func pauseVideo() { + self.avPlayer?.pause() + } + + func disposeVideo() { + self.avPlayer?.pause() + self.avPlayer?.replaceCurrentItem(with: nil) + } + +} diff --git a/HMH_iOS/HMH_iOS/Presentation/Home/Models/HomeViewTotalDataModel.swift b/HMH_iOS/HMH_iOS/Presentation/Home/Models/HomeViewTotalDataModel.swift new file mode 100644 index 0000000..15f456a --- /dev/null +++ b/HMH_iOS/HMH_iOS/Presentation/Home/Models/HomeViewTotalDataModel.swift @@ -0,0 +1,8 @@ +// +// HomeViewTotalDataModel.swift +// HMH_iOS +// +// Created by 김보연 on 1/14/24. +// + +import Foundation