美文网首页
iOS后台写入剪切板

iOS后台写入剪切板

作者: 乱尘 | 来源:发表于2023-03-30 14:34 被阅读0次

只需要开启画中画就可以后台写入了


import UIKit
import AVKit

class HomeVC: BaseViewController {
    var playerLayer: AVPlayerLayer?
    var pipPlayer: AVPlayer?
    var pipController: AVPictureInPictureController?
    
}

extension HomeVC: AVPictureInPictureControllerDelegate {
    func createPlayer() {
        // 加载视频
        guard let path = Bundle.main.path(forResource: "TEST", ofType: "mp4") else { return }
        // 加载视频
        let videoURL = URL(fileURLWithPath: path)
        let asset = AVAsset(url: videoURL)
        let playerItem = AVPlayerItem(asset: asset)
        pipPlayer = AVPlayer(playerItem: playerItem)
        
        // 创建视频播放器
        let playerLayer = AVPlayerLayer(player: pipPlayer)
        playerLayer.frame = CGRectMake(0, 0, screen_width * 0.4, screen_height * 0.4)
        self.playerLayer = playerLayer
        let videoPlayerView = UIView(frame: CGRectMake(0, screen_height * 0.3, screen_width * 0.4, screen_height * 0.4))
        videoPlayerView.layer.addSublayer(playerLayer)
        view.addSubview(videoPlayerView)
        videoPlayerView.isHidden = true
        
        if AVPictureInPictureController.isPictureInPictureSupported() {
            let session: AVAudioSession = AVAudioSession.sharedInstance()
            do {
                try session.setCategory(.playback, mode: .moviePlayback, options: [.interruptSpokenAudioAndMixWithOthers])
                try session.setActive(true)
            } catch  {
                print(error.localizedDescription)
            }
            pipController = AVPictureInPictureController(playerLayer: playerLayer)
            pipController?.delegate = self
        }
    }
    
    // 开始画中画
    func startPictureInPicture() {
        if AVPictureInPictureController.isPictureInPictureSupported() {
            pipController?.startPictureInPicture()
        }
    }
    
    // 开始画中画
    func endPictureInPicture() {
        pipController?.stopPictureInPicture()
    }

    
    // 实现画中画控制器的代理方法
    func pictureInPictureControllerWillStartPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
        // 在开始画中画时,将视频暂停并隐藏播放器视图
        pipPlayer?.seek(to: .zero)
        pipPlayer?.play()
    }
    
    func pictureInPictureControllerDidStopPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
        // 在结束画中画时,显示播放器视图并继续播放视频
        pipPlayer?.pause()
        scrollContent.slider_c?.isOn = false
        Defaults[\.SWAutoCopy] = false
    }
}

相关文章

  • python 操作剪切板

    有时候写脚本的时候会有操作系统剪切板的需求,就是 获取剪切板中的字符串 清空剪切板 向剪切板中写入字符串 方法包括...

  • iOS14适配——查找那些SDK使用剪切板

    iOS14适配一查找那些SDK使用剪切板 背景,iOS14公测版发出之后,我们app出现了从后台唤起会弹出 读取剪...

  • 最近的项目问题总结

    3、iOS14剪切板剪切板的提示是iOS14提升用户信息安全做的,是一种系统级别提示。只提供了伪访问剪切板的API...

  • js将字符串写入系统剪切板的方法

    js将字符串写入系统剪切板的方法 利用一个不可见input,将要复制的文本写入value,再执行setSelect...

  • iOS 学习待整理

    1.与H5交互,判断后台iOS与安卓登陆2.objc中国3.ios htttp网络请求cookie的读取与写入(N...

  • 学习资源备忘录

    1.与H5交互,判断后台iOS与安卓登陆2.objc中国3.ios htttp网络请求cookie的读取与写入(N...

  • clipboard 在 vue 中的使用

    简介 页面中用 clipboard 可以进行复制粘贴,clipboard能将内容直接写入剪切板 安装 使用方法一 ...

  • iOS模拟器与MAC剪切板失效

    iOS模拟器与MAC剪切板失效,重新勾选此项。

  • iOS oc-剪切板

    一、自带剪切板操作的原生UI控件 在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField、U...

  • js 复制到剪切板

    需求内容: 实现后台返回链接点击复制到剪切板,粘贴分享。 实现方法:

网友评论

      本文标题:iOS后台写入剪切板

      本文链接:https://www.haomeiwen.com/subject/gqqcddtx.html