- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解(疯狂)如何在 tvOS 中向我的视频添加导航标记。
逻辑上应该不复杂。指定一个标记列表,其中包含章节起点、章节标题和该特定视频点的缩略图。
但是,我很难掌握如何实现它。
这是我认为要实现的最低限度,但我不知道为什么我需要所有这些才能让它工作。我也不知道应该如何设置信息。
//In my AVPlayerViewController
let metadataItem = AVMetadataItem()
let metadataItemList = [metadataItem]
let cmTimeStart = CMTimeMake(0, 0)
let cmTimeDuration = CMTimeMake(10, 1)
let timeRange = CMTimeRange(start: cmTimeStart, duration: cmTimeDuration)
let timedMetadataGroup = AVTimedMetadataGroup(items: metadataItemList, timeRange: timeRange)
let timedMetadataGroupList = [timedMetadataGroup]
let navigationMarkersGroup = AVNavigationMarkersGroup(title: "Chapters", timedNavigationMarkers: timedMetadataGroupList)
//Already previously initialized avPlayerItem
avPlayerItem.navigationMarkerGroups.append(navigationMarkersGroup)
(上面代码的目标是为我的视频显示一章。)
我想弄清楚如何在我的 tvOS 视频中将导航标记实现为“章节”。对每个部分应该完成什么的详细解释同样会非常有帮助。
最佳答案
添加章节的概念并不像我原先想象的那么复杂。您需要使用以下主要类:
AVMetadataItem
AVMutableMetadataItem
AVTimedMetadataGroup
AVNavigationMarkersGroup
为了简化工作,我们将创建一个生成“章节”的方法,或者您将看到一个 AVTimedMetadataGroup
,它由一个 title
、一个 description
,以及开始时间。
我遇到的主要问题是,在 Swift2 中,我们可以直接使用 AVMetadataItem
(编辑:这实际上是错误的,在他们的示例中,他们创建了一个名为 AVMettadataItem 的自定义类使用 AVMutableMetadataItem 来生成他们想要的东西) 这在 Swift3
中是不可能的了。但是,这可以通过 AVMutableMetadataItem
例如,这就是我们为章节标题创建 AVMutableMetadataItem
的方式:
let titleItem = AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitle
titleItem.value = title as (NSCopying & NSObjectProtocol)?
这些项目中的每一个都需要添加到我们称之为“项目”的列表中([AVMetadataItem]
)
列表完成后,您需要使用刚刚创建的列表和将应用于视频的 timeRange 创建 AVTimedMetadataGroup
(又名:章节将从何处开始以及如何开始持续很长时间)
在我的例子中,章节持续时间不是什么大问题,所以我将它设置为固定时间(10 秒)。
您需要注意的是,如果 CMTime
无效,该章节不会显示在列表中。
private func setupNavigationMarker(title: String, description: String, timeStart: Int64)-> AVTimedMetadataGroup {
let timeRange = CMTimeRange(start: CMTimeMake(timeStart, 1), duration: CMTimeMake(10, 1))
var items: [AVMetadataItem] = []
let titleItem = AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitle
titleItem.value = title as (NSCopying & NSObjectProtocol)?
items.append(titleItem)
let descriptionItem = AVMutableMetadataItem()
descriptionItem.identifier = AVMetadataCommonIdentifierDescription
descriptionItem.value = description as (NSCopying & NSObjectProtocol)?
items.append(descriptionItem)
return AVTimedMetadataGroup(items: items, timeRange: timeRange)
}
AVNavigationMarkerGroup
然后在你的 AVPlayerViewController 的某个地方(比如 ViewDidLoad
):
var timedMetadataGroupList = [AVTimedMetadataGroup]()
timedMetadataGroupList.append(self.setupNavigationMarker(title: "test1", description: "description test1" , timeStart: 100))
timedMetadataGroupList.append(self.setupNavigationMarker(title: "test2", description: "description test2" , timeStart: 200))
timedMetadataGroupList.append(self.setupNavigationMarker(title: "test3", description: "description test3" , timeStart: 300))
let navigationMarkersGroup = AVNavigationMarkersGroup(title: "Chapters", timedNavigationMarkers: timedMetadataGroupList)
avPlayerItem.navigationMarkerGroups.append(navigationMarkersGroup)
即将推出...
关于swift - 如何在 tvOS 中为我的视频添加导航标记作为章节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610817/
我想预加载同一视频的各个章节。这样当有人跳到新章节时就不会出现缓冲。 例如,如果第一章从 00:00 开始,下一章从 00:15 开始,我希望我的播放器提前预加载每章 2-3 秒。 最佳答案 您可以尝
我似乎无法在 NASM 的文档中找到任何关于在代码中使用“Section”或“[SECTION”(带方括号)之间的区别的明确信息。我知道这些是宏,但我发现它们几乎可以互换使用。是这样吗?换句话说就是
最近我去了w3schools New HTML5 Elements并发现了“section”和“article”标签。我的问题是什么时候应该使用节、文章或 div 标签,为什么当我使用节和文章标签时文
我正在尝试使用 JavaScript 来导航 Quicktime 视频中的章节。 我可以使用此功能查看每个 Quicktime 有多少章: function GetChapterCount(an
Eloquent javscript 在模块章节的第 10 章中写道: The most obvious way is the special operator eval, which will ex
我正在开发 HTML5 应用程序,我在其中使用了以下标签。 我想知道在 HTML5 应用程序中这些标签的实际用途是什么。我们已经使用了 我们传统应用程序中的标签也与上面给定的标签一样工作,所以
我正在尝试使用适用于 Linux 的 WKHTMLTOPDF 生成一本 PDF 书籍,并通过 Perl 程序享用午餐。我将多个带有封面和页脚信息的 html 文件通过 html 文件传递到 WKH
在关于流的介绍性章节中,Okasaki 为 drop 提供了 2 个实现。在溪流上。 他明确提到第二个更有效(并且两者具有相同的语义),但我似乎无法弄清楚为什么一个比另一个更有效。任何见解将不胜感激。
什么是 rails 方式显示嵌套层次结构的 View ?似乎是一个简单的问题,但试着忍受我,也许有人会理解(并希望能消除)我的困惑。 我的应用程序是一个简单的层次结构(为了讨论的目的而更加简化): 在
我是一名优秀的程序员,十分优秀!