SwiftVideoBackground 是一个易于使用的 Swift 框架,提供了在任意 UIView 上播放视频的能力。这为登录界面或启动页面提供了美丽的 UI,如 Spotify 及许多人所实现的那样。
特性
- 一行代码即可播放视频
- 支持本地视频和来自网络 URL 的视频
- 设备方向变化时自动调整
- 当应用重新进入前台时自动恢复视频
- 暂停、继续、重新开始等控制
- 循环视频(可选)
- 静音(可选)
- 变暗视频,以便重叠的 UI 更显眼(可选)
- 文档
内容
集成
CocoaPods
您可以使用 CocoaPods 通过将其添加到您的 Podfile
来安装 SwiftVideoBackground
针对 Swift 5
pod 'SwiftVideoBackground'
针对 Swift 4
pod 'SwiftVideoBackground', '~> 3.0'
针对 Swift 3
pod 'SwiftVideoBackground', '0.06'
Carthage
您可以使用 Carthage 通过将其添加到您的 Cartfile
来安装 SwiftVideoBackground
github "dingwilson/SwiftVideoBackground"
手动方式
要在项目中手动使用此库,您可以
- 对于项目,只需将 VideoBackground.swift 拖到项目资源树中即可
- 对于工作空间,需要包含整个 SwiftVideoBackground.xcodeproj
迁移指南
版本 3.0.0
- 支持传入视频数组的特性已被移除。您应提前合并视频。以下是如何使用 FFmpeg 连接媒体文件的指南 [链接]。
- 将
alpha
重命名为darkness
版本 2.0.0
请参阅快速迁移指南。
用法
示例
import UIKit
import SwiftVideoBackground
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
try? VideoBackground.shared.play(view: view, videoName: "myVideo", videoType: "mp4")
/* or from URL */
let url = URL(string: "https://coolVids.com/coolVid.mp4")!
VideoBackground.shared.play(view: view, url: url)
}
}
版本0.06(Swift 3)的文档可以在这里找到。
自定义功能
play()
方法有四个可用的可选参数用于自定义功能
darkness
: CGFloat - 值在0
到1
之间。值越高,视频越暗。默认为0
。isMuted
: Bool - 表示视频是否静音。默认为true
。willLoopVideo
: Bool - 表示视频播放结束后是否重新开始。默认为true
。setAudioSessionAmbient
: Bool - 表示是否将共享的AVAudioSession
设置为环境音。如果不是这样做,您应用程序播放的音频将暂停设备上正在播放的其他音频。默认为true
。
例如
VideoBackground.shared.play(
view: view,
videoName: "myVideo",
videoType: "mp4",
darkness: 0.25,
isMuted: false,
willLoopVideo: true,
setAudioSessionAmbient: true
)
-> 以声音打开,稍微变暗,循环播放的视频,并且不会影响设备上的其他音频源播放。
参数可以是任意的组合,或者全部省略。
setAudioSessionAmbient
只在iOS 10.0+版本有效。更多详情请见文档。
控件
pause()
- 暂停视频。resume()
- 恢复视频。restart()
- 重新开始视频。getThumbnailImage(from: URL, at: CMTime)
- 从视频中生成图片用作缩略图。darkness
- 将此CGFloat
值改变可调整视频的暗度。值从0
到1
。较大数字表示更暗。设置为无效值不会产生任何效果。isMuted
- 改变此Bool
值以静音/取消静音视频。willLoopVideo
- 改变此Bool
值以设置视频播放结束后是否重新开始。videoGravity
- 默认为.resizeAspectFill
。改为.resizeAspect
(不填充视图)或.resize
(不保持原始比例)。playerLayer
- 可以访问用于高级控制和自定义视频的AVPlayerLayer
。
单例
SwiftVideoBackground
包含一个单例实例,可以通过 VideoBackground.shared
方便地访问。一个 VideoBackground
实例一次只能在一个 UIView
上播放一个视频。因此,如果需要在多个 UIView
上播放,您需要为每个 UIView
保留一个 VideoBackground
实例。
let videoBackground1 = VideoBackground()
将视频添加到您的项目中
为了播放本地视频,您必须将它们添加到您的项目中。
- 打开项目导航器
- 选择您的目标
- 选择
构建阶段
- 选择
复制包资源
- 点击
+
添加视频
许可
SwiftVideoBackground
采用 MIT 许可协议 发布。请参阅 LICENSE 了解详细信息。
作者
版权所有 © 2016-至今 Wilson Ding。
请提供署名,我们将非常感激。