swift - TVVLCKit 实现 SwiftUI

标签 swift swiftui libvlc

我需要在我的一个 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 一样控制暂停、播放和跟踪选择器。

AVPlayer Example

最佳答案

您所要做的就是在 VLC 播放器的顶部添加一个 ZStack 层,并在那里添加您的信息和交互,

我在 github 上用 Apple-Tv 编写了一个完整的工作代码示例,其中包含 TVVLCKit 和 SwiftUI,演示了如何添加播放暂停和缩略图控件、元数据信息面板(作为占位符,您可以在那里填写任何您想要的内容)

https://github.com/shaybc/VLCTester

希望对你有帮助

关于swift - TVVLCKit 实现 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65096328/

相关文章:

arrays - 我可以创建一个从 Array 派生的类吗?

swift - 尝试将 Twitter 用户的用户名保存到 Firebase 数据库 iOS 应用程序

SwiftUI ToolbarItem 不显示来自 NavigationLink 的 View

swift - 获取日期中的某一天 SwiftUI

c++ - 如何跟踪C++库的加载过程?

c# - 如何在 C# 中通过 VLC api 流式传输视频

ios - 如何在 ImageIO iOS 框架中升级图像?

swift - 如何在 swiftUI 中以线性样式 ProgressView 显示 WKWebView 的估计进度?

C# Vlc.DotNet 库 - setmedia 上的空引用异常

swift - 如何在 Swift 5 中以编程方式更改导航栏的背景颜色?