TVVLCKit 实现 SwiftUI
TVVLCKit Implementation SwiftUI
我需要在我的一个 TVOS 应用程序中实现 VLC 库,我目前有以下内容:
import SwiftUI
import TVVLCKit
struct VlcPlayerDemo: UIViewRepresentable{
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<VlcPlayerDemo>) {
}
func makeUIView(context: Context) -> UIView {
return PlayerUIView(frame: .zero)
}
}
class PlayerUIView: UIView, VLCMediaPlayerDelegate {
private let mediaPlayer = VLCMediaPlayer()
override init(frame: CGRect) {
super.init(frame: frame)
let url = URL(string: "URL")!
mediaPlayer.media = VLCMedia(url: url)
mediaPlayer.delegate = self
mediaPlayer.drawable = self
mediaPlayer.play()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
}
}
此代码可以正常工作并正确播放内容,但我需要全屏播放它,并且需要控制暂停、播放和跟踪选择器,因为 AVPlayer 有它们。
您所要做的就是在 VLC 播放器的顶部添加一个 ZStack 层,并在其中添加您的信息和交互,
我在 github 上用 TVVLCKit 和 SwiftUI 从 Apple-Tv 编写了一个完整的工作代码示例,演示了如何添加播放暂停和缩略图控件、元数据信息面板(作为占位符,您可以在那里填写你想要的任何东西)
https://github.com/shaybc/VLCTester
希望这对您有所帮助
我需要在我的一个 TVOS 应用程序中实现 VLC 库,我目前有以下内容:
import SwiftUI
import TVVLCKit
struct VlcPlayerDemo: UIViewRepresentable{
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<VlcPlayerDemo>) {
}
func makeUIView(context: Context) -> UIView {
return PlayerUIView(frame: .zero)
}
}
class PlayerUIView: UIView, VLCMediaPlayerDelegate {
private let mediaPlayer = VLCMediaPlayer()
override init(frame: CGRect) {
super.init(frame: frame)
let url = URL(string: "URL")!
mediaPlayer.media = VLCMedia(url: url)
mediaPlayer.delegate = self
mediaPlayer.drawable = self
mediaPlayer.play()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
}
}
此代码可以正常工作并正确播放内容,但我需要全屏播放它,并且需要控制暂停、播放和跟踪选择器,因为 AVPlayer 有它们。
您所要做的就是在 VLC 播放器的顶部添加一个 ZStack 层,并在其中添加您的信息和交互,
我在 github 上用 TVVLCKit 和 SwiftUI 从 Apple-Tv 编写了一个完整的工作代码示例,演示了如何添加播放暂停和缩略图控件、元数据信息面板(作为占位符,您可以在那里填写你想要的任何东西)
https://github.com/shaybc/VLCTester
希望这对您有所帮助