繁体   English   中英

AVPlayer运行时无法滑动UIScrollView

[英]Can't swipe the UIScrollView when AVPlayer is running

大家好,我正在尝试通过滚动视图在两页之间滑动,但是效果很好,但是当我在播放视频时尝试滑动时,这在我的ViewControllers代码中不起作用

MainVeiwController

override func viewDidLoad() {
        super.viewDidLoad()
        scrollView.isPagingEnabled=true
        let settings = SettingsViewController(nibName: "SettingsViewController", bundle: nil)
        self.addChildViewController(settings)
        self.scrollView.addSubview(settings.view)
        settings.didMove(toParentViewController: self)

        let diamond = DiamondViewController(nibName: "DiamondViewController", bundle: nil)
        var frame1 = diamond.view.frame
        frame1.origin.x = self.view.frame.size.width
        diamond.view.frame=frame1
        self.addChildViewController(diamond)
        self.scrollView.addSubview(diamond.view)
        diamond.didMove(toParentViewController: self)
        self.scrollView.contentSize = CGSize(width: self.view.frame.size.width * 2, height: self.view.frame.size.height-70)
        scrollView.contentOffset = CGPoint(x: scrollView.frame.size.width, y: 0)
}

第二个ViewController

var playerViewController = AVPlayerViewController()
var playerView = AVPlayer()

override func viewDidLoad() {
    super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {

    let fileURL = NSURL(fileURLWithPath: "PATHTOVIDEO")
    playerView=AVPlayer(url: fileURL as URL)

    playerViewController.showsPlaybackControls=false;

    NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerView.currentItem, queue: nil)
    { notification in
        let t1 = CMTimeMake(1, 100);
        self.playerView.seek(to: t1)
        self.playerView.play()

    }


    playerViewController.player = playerView

    self.present(playerViewController,animated:true){
        self.playerViewController.player?.play()
    }
}

现在我想知道的是,即使正在播放视频,我如何在页面之间滑动也可以解决。

尝试将AVPlayerViewController嵌入到SecondViewController中,而不是显示它。

代码示例:

let url = // whatever
let player = AVPlayer(URL:url)
let av = AVPlayerViewController()
av.player = player
av.view.frame = // whatever
self.addChildViewController(av)
self.view.addSubview(av.view)
av.didMoveToParentViewController(self)

来自以下代码: 具有avplayerviewcontroller播放控件的AVPlayer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM