AVPlayer 隐藏式字幕打开/关闭

Posted

技术标签:

【中文标题】AVPlayer 隐藏式字幕打开/关闭【英文标题】:AVPlayer Closed Captions turn on/off 【发布时间】:2017-10-04 15:46:55 【问题描述】:

我正在创建自定义视频播放器,我想为 CC 创建切换按钮。

我看到了这个帖子:ios AVPlayer cannot disable closed captions

所以我尝试了:

AVMediaSelectionGroup *group = [self.avPlayer.currentItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible];

[self.avPlayer.currentItem  selectMediaOption:nil inMediaSelectionGroup:group];

没用.. cc 仍然可见。

也试过了:

AVPlayerItemLegibleOutput *output = [[AVPlayerItemLegibleOutput alloc] init];
[output setDelegate:self queue:dispatch_get_main_queue()];
[output setSuppressesPlayerRendering:true];
[self.avPlayer.currentItem addOutput:output];

它隐藏了抄送,但我怎样才能取消隐藏呢? ,我试过了:

[output setSuppressesPlayerRendering:true];

但 cc 在屏幕上冻结。

谢谢!

【问题讨论】:

这个你搞定了吗? 这是答案。 ***.com/questions/33303052/… 【参考方案1】:

目标 C:这个对我有用。甚至我也想做同样的事情。

关闭字幕

AVMediaSelectionGroup *subtitleSelectionGroup = [_playerItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible];
              
[_playerItem selectMediaOption:NULL inMediaSelectionGroup:subtitleSelectionGroup];

为了再次显示它,我这样做:

AVMediaSelectionOption* option = [subtitleSelectionGroup.options objectAtIndex:subtitleIndex-1]; // I did -1 because OFF was 0 for my case 
         
[_playerItem selectMediaOption:option inMediaSelectionGroup:subtitleSelectionGroup];
   

【讨论】:

以上是关于AVPlayer 隐藏式字幕打开/关闭的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 上使用 AVFoundation AVPlayer 显示字幕

AVPlayer - 如何以编程方式打开/关闭来自 HTTP Live Streaming 视频的 CC?

将 AVPlayerViewController.player 设置为 nil 会中断隐藏式字幕

Xamarin:AVPlayer 在 iOS 13 上自动关闭

AVPlayer url持续时间Xcode 12 [关闭]

由于间隙,AVPlayer 流在后台停止 [关闭]