Pantomime 是一个为 iOS、OSX 和 tvOS 开发的轻量级框架,可以读取和解析 HTTP Live Streaming 清单。
要将 Pantomime 作为 Swift Package Manager 包使用,只需在您的 Package.swift 文件中添加以下内容。
import PackageDescription
let package = Package(
name: "HelloWorld",
dependencies: [
.Package(url: "https://github.com/thomaschristensen/Pantomime", majorVersion: 0)
]
)
要使用解析器,请按如下操作
import Pantomime
let builder = ManifestBuilder()
if let url = NSURL(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") {
let manifest = builder.parse(url)
}
ManifestBuilder 的 parse 方法期望在 URL 的另一端找到主播放列表清单。解析完成后,主播放列表中引用的所有媒体播放列表清单也将被检索和解析。
清单构建器可以解析主和媒体播放列表清单。您可以选择让 ManifestBuilder 解析主和它的媒体播放列表,或者只解析主或媒体播放列表。
表示主播放列表,它包含对媒体播放列表对象的引用列表
媒体播放列表对象包含所有视频片段的列表以及其他属性,如目标持续时间(每个片段的最大持续时间)、路径、版本、带宽、程序 ID 和起始媒体序列号。
此对象保留对实际视频文件(路径)的引用,它的实际持续时间,序列号和可选的标题。
这是一种定义如何逐行读取这些文本表现文档的协议。该协议的多种实现存在,有助于从文件、URL或字符串中读取文档。这些实现包括FileBufferedReader、URLBufferedReader和StringBufferedReader。
是一个工具类,可以使用它根据需要的类型来构建实际的BufferedReader实现。(此类已弃用。直接使用BufferedReader的实现)
对NSURL类进行了扩展,以协助在给各种表现文件中相对路径时构建正确的URL。
let masterManifest = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
let mediaManifest = "gear1/prog_index.m3u8"
if let masterManifestURL = NSURL(string: masterManifest) {
let mediaManifestURL = masterManifestURL.URLByReplacingLastPathComponent(mediaManifest)
// mediaManifestURL now = http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8
}
Pantomime框架在MIT许可证下发布。