ExSubtitle 0.0.1

ExSubtitle 0.0.1

Seuhgho Hong维护。



  • 作者:
  • Seungho Hong
标题 日期 版本
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]