zoukankan      html  css  js  c++  java
  • 关于视频,直播

    1 屏幕旋转和全屏:

    首先必须在根控制器中设置shouldAutorotate,

    如果根控制器设置为self.window?.rootViewController = BaseNavigationController(rootViewController: ViewController())

    则必须在BaseNavigationController内设置,想要在不同控制器中自定义是否选装,女啊中代码如下

    override func shouldAutorotate() -> Bool {

            return (self.topViewController?.shouldAutorotate()) ?? false

        }

        

        override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {

            return (self.topViewController?.supportedInterfaceOrientations()) ?? [.Portrait]

        }

     

    在特定控制器中代码:其中view为你需要放大缩小全屏展示的view

    override func shouldAutorotate() -> Bool {

            return true

        }

        override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {

            super.willRotateToInterfaceOrientation(toInterfaceOrientation, duration: duration)

            switch toInterfaceOrientation {

            case .Unknown:

                print("未知方向")

                break

                

            case .LandscapeLeft:

                print("屏幕向左横置")

                view.frame = CGRectMake(0, 0, P.height , P.width)

                self.verticalView.hidden = true

                break

                

            case .LandscapeRight:

                print("屏幕向右横置")

                view.frame = CGRectMake(0, 0, P.height , P.width)

                break

                

            case .Portrait:

                view.frame = CGRectMake(0, 44, P.width , P.width * scale)

                print("屏幕直立")

                break

                

            case .PortraitUpsideDown:

                print("屏幕直立,上下颠倒")

                break

            default:

                print("无法辨别")

                break

            }

        }

    主动控制旋转:

      在播放界面上添加一个透明模版,然后在模版上添加你需要的按钮,比如音量,全屏按钮,这样可以有效低耦合,按钮功能与播放器分别管理;

      verticalView为朦层view

    代理方法:

      let sele = self.verticalView.fullScreenButton.selected

                self.verticalView.fullScreenButton.selected = !sele

                print("select = (sele)")

                if self.verticalView.fullScreenButton.selected {

                    setNewOrientation(true)

                } else {

                    setNewOrientation(false)

                }

      按钮click:setNewOrientation

      

      func setNewOrientation(fullScreen: Bool) {

            let device = UIDevice.currentDevice()

            let lastOrientation = device.orientation

            let deviceOrientation = fullScreen ? UIInterfaceOrientation.LandscapeRight : UIInterfaceOrientation.Portrait

            if device.respondsToSelector("setOrientation:") {  

                device.setValue(deviceOrientation.rawValue, forKey: "orientation") 

            }

            if lastOrientation.rawValue == deviceOrientation.rawValue {

                UIViewController.attemptRotationToDeviceOrientation()

            }

        }

     

    2 音量控制:

      通遍历volumeView来获取其UISlider类型的子控件来实现音量的控制(设计私有方法)

      for item in volumeView.subviews {

                if item.isKindOfClass(UISlider) {

                    self.volumeSlider = item as! UISlider

                }

            }

      func muteButtonButtonClick(btn: UIButton) {

            let sele = btn.selected

            btn.selected = !sele

            print("value = (lastVolumeValue)")

            //静音

            if !sele {

                lastVolumeValue = (volumeSlider?.value)!

                self.volumeSlider?.value = 0

            } else {

                self.volumeSlider?.value = lastVolumeValue

            }

        }

  • 相关阅读:
    append()、appendChild() 和 innerHTML 的区别
    JS实现动态添加和删除div
    linux下的find文件查找命令与grep文件内容查找命令
    Java 并发基础常见面试题总结
    深入理解HashMap
    JAVA 或与非运算符 与(&)、或(|)、异或(^)
    centos7.x下环境搭建(三)—nodejs安装
    centos7.x下环境搭建(二)—nginx安装
    centos7.x下环境搭建(一)--yum方式安装mysql5.7
    基于vuecli3构建一个快速开发h5 APP的模板
  • 原文地址:https://www.cnblogs.com/hazhede/p/5765685.html
Copyright © 2011-2022 走看看