iOS 앱 개발 심화 (실습)
스파르타 코딩 클럽
import AVKit
: AudioVisual ( 소리와 시각적 요소를 모두 처리하는 전자 매체 )를 사용하기 위한 기본적 사용자 인터페이스
URL
: URL은 특정 리소스의 위치를 나타냄 ( 보통 String을 통해서 접근 && 한글이나 공백 포함 시 리턴 값이 nil )
let url = URL(string : "url 주소")!
playerButton = 눌렀을 때 동영상을 띄우기 위해 뷰에 생성될 버튼이다.
url = 띄울 동영상의 url
playerController = 동영상플레이어의 컨트롤러 인스턴스 생성 (AVPlayerViewController)
player = 동영상 인스턴스 생성 (AVPlayer)
ㄴ AVPlayer?로 선언하여 Optional로 만든 것은 URL이 유효하지 않은 경우에도 AVPlayer가 nil이 될 수 있게 하기 위함이다.
( URL이 nil이거나 잘못된 경우에는 player가 nil이 되어 안전하게 처리 가능)
버튼 클릭 시, player를 옵셔널 바인딩으로 풀어주고, player에 url 동영상을 playerController에 재생하도록 설정한다.
present()를 사용하여 동영상 플레이어를 모달로 표시하고, 동영상을 play 함.
setupConstraints에서는 버튼을 센터로 오토레이아웃을 잡아줌 !
viewDidLoad()에 setupConstraints()와 configureUI() 호출도 잊으면 안 됨...!
코드로 버튼 사용 법!
@objc func 버튼함수이름() { //버튼 실행 시 동작할 것 }
이렇게 입력해 주고
버튼변수.addTarget(self, action: #selector(버튼함수이름), for: .touchUpInside)
이렇게 함수를 버튼에 연결해 줘서 사용함!
//전체코드
import UIKit
import SnapKit
import AVKit
class ViewController: UIViewController {
let playerButton = UIButton(type: .system)
let url = URL(string: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")!
let playerController = AVPlayerViewController()
var player: AVPlayer?
override func viewDidLoad() {
super.viewDidLoad()
configureUI()
setupConstraints()
}
@objc func playButtonTapped() {
guard let player = player else { return }
playerController.player = player
present(playerController, animated: true) {
player.play()
}
}
func setupConstraints() {
view.addSubview(playerButton)
playerButton.snp.makeConstraints {
$0.center.equalToSuperview()
}
}
func configureUI() {
playerButton.setTitle("Play Video", for: .normal)
playerButton.addTarget(self, action: #selector(playButtonTapped), for: .touchUpInside)
// Initialize AVPlayer after configuring UI
player = AVPlayer(url: url)
}
}
'개인공부' 카테고리의 다른 글
😯 (0) | 2024.05.19 |
---|---|
UIView 모서리 둥글게 만들기 / 그림자 추가 (2) | 2024.05.07 |
코드베이스 _ SnapKit 라이브러리 (1) | 2024.05.05 |
AutoLayout (4) | 2024.05.02 |
Swift 타입 변환 모음 (3) | 2024.03.26 |