Clappr for iOS 和 tvOS
Clappr 是一款用于 iOS 和 tvOS 的可扩展媒体播放器。
安装
CocoaPods
CocoaPods 是一个用于 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 将 Clappr 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它到目标
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Clappr', '~> 0.9.0'
end
然后,运行以下命令
$ pod install
Carthage
Carthage 是一个去中心化的依赖管理器,用于构建您的依赖关系并提供二进制框架。
您可以使用以下命令通过 Homebrew 安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 Clappr 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "clappr/clappr-ios" ~> 0.9.0
运行 carthage update
以构建框架,并将构建的 Clappr.framework
拖动到您的 Xcode 项目中。
使用方法
iOS
创建
let options = [kSourceUrl : "http://clappr.io/highline.mp4"]
let player = Player(options: options)
在您的视图中添加
player.attachTo(yourView, controller: self)
媒体控制
这是一个内置的插件(即:可以被您的自己的插件替换),它可以显示媒体控制组件,例如:播放/暂停按钮、进度条、视频信息(例如:标题和/或说明)等。
在内部是一组堆叠视图,分为面板和位置,可以用来组织屏幕上的组件。
-
面板:定义了插件将在屏幕的哪个部分渲染。选项有
top
、center
、bottom
和modal
。 -
位置:定义插件将在面板的哪个部分渲染。选项有
left
、center
、right
和none
。
Clappr自带四个默认组件:播放/暂停按钮、进度条、全屏按钮和时钟指示器。用户可以与播放进行完全交互。您可以使用自己的元素自定义它,见下文
媒体控制元素
您可以通过创建自己的媒体控制元素将自定义组件添加到MediaControl
中。
为了做到这一点,您必须
- 继承自
MediaControl.Element
; - 在哪个
面板
和位置
渲染元素; - 有一个唯一名称;
如果您提供了与现有插件(内置)相同的名称,则插件将覆盖现有插件。
您可以查看一些示例
tvOS
创建
let options = [kSourceUrl : "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8"]
let player = Player(options: options)
注册自定义插件
为了注册一个自定义插件,在初始化之前,需要在Player中传递插件类型,使用以下示例中的静态方法register
let plugins = [PluginExemplo.self]
WMPlayer.register(plugins: plugins)
var player = WMPlayer(options: options)
player.attachTo(playerContainer, controller: self)
Player不支持在运行时添加或删除插件,因此需要在初始化之前注册插件。如果Player被销毁并重新创建,所有注册的插件将被重用,如下例所示
let firstTimePlugins = [PluginExemploA.self]
WMPlayer.register(plugins: firstTimePlugins)
var player = WMPlayer(options: options)
let secondTimePlugins = [PluginExemploB.self]
WMPlayer.register(plugins: secondTimePlugins)
// PluginExemploB will not be used in this instance of Player
player.attachTo(playerContainer, controller: self)
player.destroy()
// PluginExemploA and PluginExemploB will be used in this instance of Player
player = WMPlayer(options: options)
添加到您的控制器
addChildViewController(player)
player.view.frame = view.bounds
view.addSubview(player.view)
player.didMove(toParentViewController: self)
默认配置假设在tvOS上是全屏。请确保相应的附加视图填充整个窗口区域。
播放器还支持嵌入式模式。为此,您需要通过选项禁用媒体控制
kMediaControl: false
您可以在这里了解更多关于选项的信息 (链接)。
播放状态
您可以通过使用《Player》和《Playback》的状态属性来检查播放状态。这些状态是:
@objc public enum PlaybackState: Int {
case none = 0
case idle = 1
case playing = 2
case paused = 3
case stalling = 4
case error = 5
}
事件
播放器抛出了一系列事件,这可能对您的应用程序很有用。
选项
您可以向播放器添加选项。您可以在《这里》看到可用选项及其使用方法。
后台外部播放
要启用您的应用程序在后台时的外部播放,您需要在应用程序的《背景模式功能》中包含 audio
值。
手动编辑Info.plist
添加 UIBackgroundModes
键。添加到您的Info.plist文件后,Xcode将将其转换为更易读的值 Required background modes
,它表示一个值数组。然后,添加一个新的条目,其值为 audio
,它将被转换为 App plays audio or streams audio/video using Airplay
。
功能选项卡
单击代表您应用的靶标。打开功能选项卡,在那里您将看到可用功能的列表。其中之一是 后台模式
。将其切换到 开启
并勾选 音频、Airplay和画中画
复选框。
许可证
您可以在以下位置找到它:此处。