Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c tvos AVPlayerViewController如何在swipedown菜单上显示字幕选项卡_Objective C_Tvos_Avplayerviewcontroller - Fatal编程技术网

Objective c tvos AVPlayerViewController如何在swipedown菜单上显示字幕选项卡

Objective c tvos AVPlayerViewController如何在swipedown菜单上显示字幕选项卡,objective-c,tvos,avplayerviewcontroller,Objective C,Tvos,Avplayerviewcontroller,在tvOS中,在用户向下滑动遥控器时显示的菜单中,在其他电影应用程序上显示“字幕、音频和信息”,如何创建另一个带有按钮的选项卡 下面是我的代码: AVMutableMetadataItem *titleMetadataItem = [[AVMutableMetadataItem alloc] init]; titleMetadataItem.locale = NSLocale.currentLocale; titleMetadataItem.key = AVMetadataCommonKeyTi

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;
有人能告诉我如何在
avplayervewcontroller
的向下滑动菜单中创建一个按钮,以便用户可以在关闭或打开字幕之间切换吗?我没有在视频中嵌入
srt文件
。相反,我有一个单独的
字幕解析器
,并将其显示在标签上。我可以用文本显示信息部分,但有没有办法添加按钮

或 如何在视频中添加字幕选项? 这不起作用:
\u player.requiresfullstitles=YES


谢谢

如果字幕嵌入到HLS流中,AVPlayerViewController仅加载字幕,这也是在swipedown菜单上显示“字幕”选项卡的唯一合法方式

我构建了一个实用程序,用于将VTT字幕动态添加到HLS(m3u8)流中,称为AchlsCaptionServer()

注意:如果您只能访问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吗。你找到这个问题的解决办法了吗?你能告诉我怎么解决吗?事实上,我想在字幕的位置添加一个自定义按钮。这有点麻烦,但你必须创建一个包含该按钮的自定义视图,并在需要显示该按钮时进行切换。