[AVPlayer iOS swiftui

问题描述 投票:0回答:1

我的应用程序遇到问题,当用户将视频置于全屏状态并向上拖动该视频时,屏幕变为黑色,并且视频继续在背景上播放。NavigationView(三级视图)中有一个视频。 >

SwiftUI和Swift 5

此外,我也在寻找使用SwiftUI的任何方法来在用户点击按钮时进入全屏视频,而不是在新视图内加载。

编辑

我想出了向上拖动的问题,如果有人遇到相同的问题,请检查您是否禁用了应用程序中的任何方向模式,以解决我必须在所有方向模式下启用问题应用程序的问题。

我遇到我的应用程序的问题,当用户将视频全屏放置并向上拖动视频时,屏幕变黑,视频继续播放...]]

ios swift swiftui avplayer
1个回答
0
投票

使用UIViewRepresentableAVPlayer

struct PlayerView: UIViewRepresentable {
    func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PlayerView>) {
    }

    func makeUIView(context: Context) -> UIView {
        return PlayerUIView(frame: .zero)
    }
}

class PlayerUIView: UIView {
    private let playerLayer = AVPlayerLayer()

    override init(frame: CGRect) {
        super.init(frame: frame)

        let url = URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")!
        let player = AVPlayer(url: url)
        player.play()

        playerLayer.player = player
        playerLayer.videoGravity = .resizeAspectFill

        layer.addSublayer(playerLayer)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        playerLayer.frame = bounds
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.