SwiftUI에서 Videoplayer를 사용해 보았습니다.
3263 단어 VideoPlayerSwiftUI
SwiftUI의 코드에서만 표현
import SwiftUI
import AVKit
struct ContentView: View {
// play river.mp4
private let player = AVPlayer(url: Bundle.main.url(forResource: "river", withExtension: "mp4")!)
var body: some View {
HStack{
VideoPlayer(player: player)
.onAppear() {
self.player.play()
}.onDisappear() {
self.player.pause()
}.edgesIgnoringSafeArea(.all)
}
}
}
화면 표시
예를 들어, 로그인 화면의 배경으로 전체 화면에서 동영상을 표시하고 싶은 경우에 전체 화면에서 동영상 재생, 정지의 UI 부품을 지울 것을 고려할까 생각합니다. 2021년 4월 시점에서는, SwiftUi만의 코드에서는 지워지지 않고, UIViewControllerRepresentable를 이용해 AVPlayer,AVPlayerViewController를 이용해, 그 부품을 지울 필요가 있을 것 같습니다.
AVPlayer, AVPlayerViewController를 이용, UIViewControllerRepresentable을 상속한 코드가 필요한 곳
코드는 다음과 같습니다.
import SwiftUI
import AVKit
struct ContentView: View {
//play river movie
private let player =
AVPlayer(url: Bundle.main.url(forResource: "river", withExtension: "mp4")!)
var body: some View {
PlayerViewController(player: player)
.onAppear(){
self.player.play()
}.edgesIgnoringSafeArea(.all)
}
}
struct PlayerViewController: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> AVPlayerViewController {
let player =
AVPlayer(url: Bundle.main.url(forResource: "kawa", withExtension: "mp4")!)
let controller = AVPlayerViewController()
controller.modalPresentationStyle = .fullScreen
controller.player = player
controller.videoGravity = .resizeAspectFill
controller.showsPlaybackControls = false
return controller
}
func updateUIViewController(_ playerController: AVPlayerViewController, context: Context) {
//none
}
}
화면 표시
안전 영역을 포함하여 동영상을 볼 수 있습니다. 아래는 그 스크린 샷입니다.
( 코드에서 사용하는 동영상 인용 소스 )
미래의 기대
앞으로의 SwiftUI의 버전 업으로, SwiftUI의 코드만으로 기재할 수 있는 부품이 많아질 것을 기대하고 있습니다.
Reference
이 문제에 관하여(SwiftUI에서 Videoplayer를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ozawa0711/items/a33ee808c7f710033d60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)