Gui*_*oza 6 xcode swift swiftui vlckit
我想将VLCKit与SwiftUI一起使用。
为什么不是AVPlayer?因为某些视频格式不受支持。
这是我的代码:
import SwiftUI
import UIKit
struct ContentView: View {
var body: some View {
NavigationView
{
VStack{
PlayerView(url: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")
}
}
}
}
struct PlayerView: UIViewRepresentable {
public var url: String
let mediaPlayer = VLCMediaPlayer()
func makeUIView(context: Context) -> UIView {
let controller = UIView()
mediaPlayer.drawable = controller
let uri = URL(string: self.url)
let media = VLCMedia(url: uri!)
mediaPlayer.media = media
mediaPlayer.play()
return controller
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PlayerView>) {
}
}
Run Code Online (Sandbox Code Playgroud)
这可以工作并加载视频,但我想添加播放控件(全屏、播放/暂停、前进等)。
我没有找到任何关于此的文档,任何人都可以帮助我,
谢谢
小智 2
我在 youtube 上观看了这个视频 https://www.youtube.com/watch?v=N_u9nsXNvn4
以及 如何使用 SwiftUI 在 VStack 中显示我的 AVPlayer
这是我的演示
import SwiftUI
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: "rtsp://xxxxx")!//replace your resource here
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()
}
}
struct VlcPlayerDemo_Previews: PreviewProvider {
static var previews: some View {
VlcPlayerDemo()
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3669 次 |
最近记录: |