zoukankan      html  css  js  c++  java
  • swift 播放器全屏显示

    点击全屏按钮

        @objc func clickFullScreenButton() {
            isFullScreen.toggle()
            DispatchQueue.main.async {
                UIDevice.current.setValue(self.isFullScreen ? UIInterfaceOrientation.landscapeRight.rawValue : UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")
            }
        }
    
        public var isFullScreen: Bool = false {//是否全屏
            didSet {
                DispatchQueue.main.async {
                    if self.isFullScreen {
                //videoView 重新布局 self.videoView.snp.remakeConstraints { (remake) in remake.left.right.equalTo(0) remake.top.equalTo(0) remake.height.equalTo(ScreenWidth) } self.navigationController?.setNavigationBarHidden(true, animated: true) } else { self.videoView.snp.remakeConstraints { (remake) in remake.left.right.top.equalTo(0) remake.height.equalTo(180) } self.navigationController?.setNavigationBarHidden(false, animated: true) } self.view.bringSubviewToFront(self.videoView) } } }

    给 ViewController 添加系统旋转通知

        NotificationCenter.default.addObserver(self, selector: #selector(orientationDidChange), name:UIDevice.orientationDidChangeNotification, object: nil)
    sharedDelegate.rotate = true

    @objc func orientationDidChange() { if playerItem == nil { return } let ttt = UIDevice.current.orientation if ttt == .landscapeLeft || ttt == .landscapeRight { isFullScreen = true } if ttt == .portrait { isFullScreen = false } }

    AppDelegate 中 添加变量和方法

        var rotate = false
        func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
            if rotate {
                return .allButUpsideDown
            }
            return .portrait
        }
    

    退出时

        override func viewWillDisappear(_ animated: Bool) {
            sharedDelegate.rotate = false
            UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")
        }
    
  • 相关阅读:
    java开发实战经典
    defer属性---->执行外部脚本
    深入理解JavaScript 模块模式
    JavaScript模块化开发一瞥
    缓存是新的内存
    php站点
    数据库
    .NET中使用Redis
    Scrum中的User Story
    如何编写敏捷开发中的user story
  • 原文地址:https://www.cnblogs.com/lion-witcher/p/13902367.html
Copyright © 2011-2022 走看看