AVPlayer 隐藏式字幕打开/关闭

Mao*_*aor 5 objective-c ios avplayer

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

我看到了这篇文章:IOS AVPlayer 无法禁用隐藏式字幕

所以我试过:

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

[self.avPlayer.currentItem  selectMediaOption:nil inMediaSelectionGroup:group];
Run Code Online (Sandbox Code Playgroud)

没用..cc 仍然可见。

也试过:

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

它隐藏了 cc,但我怎样才能取消隐藏它们?,我试过:

[output setSuppressesPlayerRendering:true];
Run Code Online (Sandbox Code Playgroud)

但是cc冻结在屏幕上。

谢谢!

小智 3

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

关闭字幕

AVMediaSelectionGroup *subtitleSelectionGroup = [_playerItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible];
              
[_playerItem selectMediaOption:NULL inMediaSelectionGroup:subtitleSelectionGroup];
Run Code Online (Sandbox Code Playgroud)

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

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