测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | 自定义 |
发布上次发布 | 2017年8月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Showmax,Showmax,Showmax,Dominik,Denis Bogomolov 维护。
依赖 | |
RxSwift | ~> 3.5.0 |
RxCocoa | ~> 3.5.0 |
SHMAVPlayerInterface 提供用于 AVPlayer
和 AVPlayerItem
的易于使用的接口。您可以替换 KVO
、CMTime
、媒体组和其他不友好的 API。
SHMAVPlayerInterface 库提供了一个反应式 API 来观察重要属性。SHMAVPlayerInterface 还提供了一个围绕 AVPlayer
的包装器,以处理基本操作,如播放/暂停和字幕更改。您仍然可以完全控制您的 AVPlayer
。
SHMAVPlayerInterface
使用 RxSwift 和 RxCocoa 库。如果您不熟悉反应式编程,您在使用 SHMAVPlayerInterface 之前应该查看这些库。
SHMAVPlayerInterface
可通过 CocoaPods 获取。
将以下行添加到您的 Podfile
pod 'SHMAVPlayerInterface'
安装依赖
pod install
使用 SHMAVPlayerInterface 有两种选项
SHMAVPlayerInterface
导入您的 swift 文件import SHMAVPlayerInterface
选项 A) 创建 SHMAVPlayerInterface
对象并开始使用 AVPlayer
let player: AVPlayer = ...
let playerInterface = SHMAVPlayerInterface(player: player)
playerInterface.play()
let subtitles = playerInterface.availableSubtitles
...
选项 B) 或者通过反应式 API 开始观察 AVPlayer
(或 AVPlayerItem
)属性。
重要:如果您使用 AVPlayer
或 AVPlayerItem
的反应式扩展,则必须在销毁 AVPlayer
或 AVPlayerItem
之前销毁您的 DisposeBag
。否则,应用会崩溃。
let player: AVPlayer = ...
// Get update about playback position every second on main thread.
playerInterface.player.rx.playbackPosition(updateInterval: 1.0, updateQueue: nil)
.subscribe(
onNext: { position in
print("Playback position: \(position)")
}
)
.disposed(by: bag)
或者,您可以按您的喜好组合这些选项。
主要文档在代码注释中。每个公共 API 都有注释。
此仓库包含一个如何使用此库的实战示例。此示例在 iOS 上使用带有自定义 UI 的 AVPlayerViewController
,在 tvOS 上使用默认 UI。
要运行示例项目,请克隆仓库,并在 Example 目录下运行 pod install
。
cd libs/SHMAVPlayerInterface/Example
pod install
open SHMAVPlayerInterface.xcworkspace
Showmax 是一家基于互联网的点播视频订阅服务,提供丰富的电视节目和电影。通过与全球各大制片厂建立关系,Showmax 不仅提供世界级国际内容,还提供具有专业性的本地内容。Showmax 可在多种设备上访问,包括智能电视、电脑、智能手机和平板电脑。
您可以在https://tech.showmax.com 和/或 https://twitter.com/ShowmaxDevs 跟随我们。
此代码目前在我们生产应用中运行。我们使用与您所见的相同pod。欢迎提交Pull Requests (PRs)。
SHMAVPlayerInterface 受Apache 许可证的许可。更多信息请查看LICENSE
文件。