2025-06-13IOSpictureinPicture开发总结

核心功能:

  1. 如何添加自定义 view 到画中画窗口?
    ‘’‘
    func pictureInPictureControllerWillStartPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
    // note this is first window
    if let window = UIApplication.shared.windows.first {
    window.addSubview(customView)
    // use autoLayout
    customView.snp.makeConstraints { (make) -> Void in
    make.edges.equalToSuperview()
    }
    }
    }
    ’‘’

  2. 如何隐藏系统按钮?
    pipController.setValue(1, forKey: "requiresLinearPlayback")
    AI写代码

  3. 如何用代码动态修改窗口的形状?
    窗口的形状由视频的形状决定。

  4. 如何用代码旋转窗口?
    详见demo源码。

  5. 如何在录视频时不暗屏?
    详见demo源码。

  6. 如何让画中画在后台一直运行?
    播放无声音频。

  7. 如何进入后台时自动开启画中画?
    AVPictuerInPictureController 提供了一个属性:
    '''
    if #available(iOS 14.2, *) {
    pipController.canStartPictureInPictureAutomaticallyFromInline = true
    } else {
    // Fallback on earlier versions
    }
    '''
    AI写代码
    Swift
    运行
    注:播放器必须处于播放状态。

  8. 如何监听画中画窗口变大变小?
    KVO,监听画中画里view大小的变化;或者直接在 layoutSubviews 方法里处理。

  9. 如何在画中画开启时,让 app 自动进入后台?
    调用下面方法:

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
AI写代码
Swift
运行

  1. 如何提升悬浮秒表的精度?
    使用 GCD Timer。

最后,如何应对苹果的审核?
苹果可能会因为你使用了后台权限而拒绝你。

可能是因为它没看到你使用了画中画功能,录屏告诉它你使用了画中画,画中画必须依赖 Background Mode.

如果这样还不行,在你的 App 里添加视频播放功能,顺带开启视频播放器的画中画功能,有了能开启画中画的视频播放器,你就可以理所当然的使用 Background Mode 了。

如何快速添加视频播放功能?用 iOS 自带的视频播放器 class 啊。

也可以用一个 web,在 web 里放视频播放器。

视频播放器放什么?实在不知道放什么就放你们产品的画中画使用教程吧。

引申出的骚操作:如何给让 App 可以一直在后台运行?
问:如何让你开发的 App 可以一直在后台运行?

答:后台放无声音频就阔以咯。

问:后台放无声音频需要 Background Mode,审核阔能不通过。

答:给你的 App 一个可以正当使用 Background Mode 的理由,比如说视频播放,比如说画中画。

原文链接:https://blog.csdn.net/m0_59449563/article/details/118031905

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容