【问题标题】:tvos AVPlayerViewController how to display subtitles tab on swipedown menutvos AVPlayerViewController 如何在向下滑动菜单上显示字幕选项卡
【发布时间】:2015-11-12 19:44:30
【问题描述】:

tvOS,当用户在遥控器上向下滑动时显示的菜单中,在其他电影应用程序上显示“字幕、音频和信息”,如何创建另一个带有按钮的选项卡?

下面是我的代码:

AVMutableMetadataItem *titleMetadataItem = [[AVMutableMetadataItem alloc] init];
titleMetadataItem.locale = NSLocale.currentLocale;
titleMetadataItem.key = AVMetadataCommonKeyTitle;
titleMetadataItem.keySpace = AVMetadataKeySpaceCommon;
titleMetadataItem.value = @"The Title";

NSArray *externalMetadata = [[NSArray alloc] initWithObjects:titleMetadataItem, nil];

_player.player.currentItem.externalMetadata = externalMetadata;

谁能告诉我如何在AVPlayerViewController 的向下滑动菜单中创建一个按钮,以便用户可以在关闭或打开字幕之间切换?我没有在视频中嵌入srt files。相反,我有一个单独的 subtitle parser 并将其显示在标签上。我能够让信息部分显示文本,但有什么方法可以添加按钮?

或 如何为视频添加字幕选项? 这不起作用: _player.requiresFullSubtitles = YES;

谢谢!

【问题讨论】:

  • 耶内尔。你有没有解决这个问题?你能告诉我如何解决吗?实际上,我想添加一个自定义按钮来放置字幕。
  • 这有点小技巧,但您必须创建一个包含该按钮的自定义视图,并在您希望显示该按钮时进行切换。

标签: objective-c tvos avplayerviewcontroller


【解决方案1】:

AVPlayerViewController 仅加载嵌入 HLS 流中的字幕,这也是在向下滑动菜单上显示“字幕”选项卡的唯一合法方式。

我构建了一个实用程序,用于将 VTT 字幕动态添加到 HLS (m3u8) 流中,称为 ACHLSCaptioningServer (https://github.com/acotilla91/ACHLSCaptioningServer)。

注意:如果您只能访问 SRT 文件,则需要找到将 SRT 转换为 VTT 的方法。

使用方法:

NSURL *origStreamURL = your_original_stream-url;
NSURL *vttFileURL = your_vtt_file_url;

NSURL *streamURL = [[ACHLSCaptioningServer sharedInstance] getCaptionedHLSStreamFromStream:origStreamURL vttURL:vttFileURL];

//
// play stream
//

AVURLAsset *videoAsset = [[AVURLAsset alloc] initWithURL:streamURL options:nil];

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:videoAsset];

AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];

AVPlayerViewController *avPlayerController = [[AVPlayerViewController alloc] initWithNibName:nil bundle:nil];
[avPlayerController setPlayer:player];
[avPlayerController.view setFrame:self.view.frame];
[self addChildViewController:avPlayerController];
[self.view addSubview:avPlayerController.view];
[avPlayerController didMoveToParentViewController:self];

【讨论】:

  • 谢谢!你知道有什么方法可以将 SRT 文件转换为 VTT 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多