3

在 iOS/TVOS 上,是否可以从 URL 加载远程 .vtt 文件并将其用作字幕轨道,同时从 URL 加载远程 HLS 视频(与在 m3u8 播放列表中指定的 VTT 相反)?

伪代码:

AVAsset* video_asset = AVAsset( "http://video.m3u8" );
AVAsset* subtitle_asset = AVAsset( "http://subtitle.vtt" );
AVPlayer player = player.playVideoWithSubtitle( video_asset, subtitle_asset );
player.play().

编辑:

文档提到使用 AVAsset 作为字幕,但有人真的有例子吗?我只能找到有关添加字符串作为字幕而不是加载远程 VTT 的示例。

4

2 回答 2

1

我在这里发布了一个解决方案:https ://stackoverflow.com/a/37945178/171933基本上,您需要使用 anAVMutableComposition来加入带有字幕的视频,然后播放该作品。

于 2016-06-21T13:02:02.230 回答
1

根据文档,这是可能的

AVAsset 是一个抽象类,用于表示视频和声音等定时视听媒体。每个资产都包含一组旨在一起呈现或处理的轨道,每个轨道都具有统一的媒体类型,包括但不限于音频、视频、文本、隐藏式字幕和字幕

你应该使用AVMutableComposition来组合资产。您可以将资产与视频与带有字幕的资产结合起来。文件:

您可以将 AVAsset 对象插入 AVMutableComposition 对象,以便从一个或多个源资产组装视听构造。

于 2016-03-08T23:08:07.913 回答