标题 | 日期 | 版本 |
---|---|---|
ExSubtitle |
0.0.1 |
ExSubtitle
概览
ExSubtitle
提供了AVPlayer不支持的外部字幕的接口。
- 解析外部字幕源
- 基于AVPlayer的播放位置通知时间文本和附加信息
支持的格式
- TTML (application/xml+ttml, application/ttml+xml)
- WebVTT (text/vtt)
- SRT (application/x-subrip)
- SMI (application/smil+xml)
- ASS (application/x-ass)
接口定义
ExSubtitle
常量
Mimetype
描述字幕类型的常量。
enum MimeType {
case smi, srt, ass, vtt, ttml
}
名称 | 描述 |
---|---|
ttml | Timed Text Markup Language |
vtt | WebVTT |
srt | SubRip |
smi | SAMI |
ass | SubStationAlpha |
方法
init(player:)
应用应该使用AVPlayer
创建ExSubtitle
实例。
声明
init(player: AVPlayer)
参数
名称 | 描述 |
---|---|
player | AVPlayer |
示例
var asset = AVAsset(url: url)
var playerItem = AVPlayerItem(asset: asset)
var player = AVPlayer(playerItem: playerItem)
var exSubtitle = ExSubtitle(player: player)
parse(from:mimetype:)
应用应当从文件或URL资源中获取字幕数据与Mimetype。
声明
func parse(from data: Data, mimetype: MimeType)
参数
名称 | 描述 |
---|---|
onCue | 无描述。 |
// TODO: 错误处理
示例
self.exSubtitle.parse(from: data, mimetype: .ttml)
setOnCue(_:)
ExSubtitle
通过onCue
监听器通知Cue
类的时间文本和信息。
声明
func setOnCue(_ onCue: @escaping ((Cue) -> Void))
参数
名称 | 描述 |
---|---|
onCue | 无描述。 |
示例
self.exSubtitle.setOnCue {
$0.payloads.forEach {
print("\($0.text)")
}
}
提示
属性
开始
声明
var start: CMTime
结束
声明
var end: CMTime
有效载荷
声明
typealias Styles = (region: Style?, style: Style?)
typealias Payload = (text: String, setting: String?, styles: Styles?)
var payloads: [Payload]