개발/iOS
[iOS] YoutubePlayer 사용하기
Liber21
2022. 7. 15. 09:59
반응형
GitHub - youtube/youtube-ios-player-helper: Lightweight helper library that allows iOS developers to add inline playback of YouT
Lightweight helper library that allows iOS developers to add inline playback of YouTube videos through a WebView - GitHub - youtube/youtube-ios-player-helper: Lightweight helper library that allows...
github.com
iOS 에 쉽고 빠르게 동영상 플레이어를 얹는 법
Youtube 플레이어 (YoutubePlayer_in_WKWebView) 를 Pod를 사용한다 🙂
Pod 에 추가하고 설치
pod "youtube-ios-player-helper", "~> x.y.z"
ViewController
import UIKit
import SnapKit
import RxSwift
import RxCocoa
class VideoViewController : UIViewController, WKYTPlayerViewDelegate {
...
/// 값이 0 인경우 전체화면, 1인경우 뷰 안에서만 재생
let playVarsDic: [String : Any] = [
"origin" : "https://www.youtube.com",
"playsinline": 1,
"showinfo" : 0,
"autohide" : 0,
"modestbranding" : 1
]
let url = "https://www.youtube.com/watch?v=GmR5YqDEet4"
if let _url = url.youTubeId {
videoView.load(withVideoId: _url, playerVars: playVarsDic)
}
...
func playerView(_ playerView: WKYTPlayerView, didChangeTo state: WKYTPlayerState) {
switch state {
case .unstarted:
print("Unstarted")
case .ended:
print("video ended")
case .playing:
print("Started playback")
case .paused:
print("Paused playback")
case .buffering:
print("buffering...")
case .queued:
print("video queued")
case .unknown:
print("unknown state")
}
}
...
}
위의 상태에 따라 필요한 핸들링을 넣어주자
Extension
import UIKit
extension String {
var youTubeId: String? {
let typePattern = "(?:(?:\\.be\\/|embed\\/|v\\/|\\?v=|\\&v=|\\/videos\\/)|(?:[\\w+]+#\\w\\/\\w(?:\\/[\\w]+)?\\/\\w\\/))([\\w-_]+)"
let regex = try? NSRegularExpression(pattern: typePattern, options: .caseInsensitive)
return regex
.flatMap { $0.firstMatch(in: self, range: NSMakeRange(0, self.count)) }
.flatMap { Range($0.range(at: 1), in: self) }
.map { String(self[$0]) }
}
}
결과
반응형