在 iOS 5 上禁用字幕会在屏幕上留下最后显示的字幕文本

Posted

技术标签:

【中文标题】在 iOS 5 上禁用字幕会在屏幕上留下最后显示的字幕文本【英文标题】:Disabling subtitles on iOS 5 leaves last displayed subtitle text on screen 【发布时间】:2012-11-05 22:17:08 【问题描述】:

我们一直在为基于 AVPlayer 的视频播放器添加字幕支持。我们可以从 [self.player.currentItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible] 生成的 AVMediaSelectionGroup 中检索 mediaType "sbtl" 的 AVMediaSelectionOption 对象,并且可以选择适当的 AVMediaSelectionOption 来在我们的直播流中显示字幕。这一切都很好。

我们遇到的问题是在 ios 5.01 和 iOS 5.1 上取消选择 AVMediaSelectionOption。

在运行 iOS 6 的设备上,我们可以使用 [self.player.currentItem selectMediaOption:nil inMediaSelectionGroup:self.subtitleSelectionGroup] 禁用字幕,它们会按预期消失。但在 iOS 5.01 和 iOS 5.1 上,字幕停止更新,但最后显示的文本仍保留在视频播放器上,直到播放器关闭、按下电源按钮或应用程序移至后台。

我们尝试过滤掉强制字幕,认为这可能是问题所在,但无济于事。这是操作系统中的错误吗?我们的流媒体视频有问题吗?

感谢您提供的任何帮助和指导。

【问题讨论】:

听起来像“大人物”。在电视广告插播期间看到“隐藏式字幕”文本行(通常只是部分完成)并不少见。 【参考方案1】:

不确定这在 iOS5 中是否有帮助,但在我的视频流中,我有一个字幕选项和每种语言的强制字幕选项。我更改为强制字幕选项,它不会显示任何字幕(仅当您有强制字幕时)。 因此,如果您制作这样的视频并且完全没有字幕的强制字幕,您可以选择强制字幕以在 iOS5 中发挥作用。

这是我的选择组选项数组的打印对象:

<__NSArrayM 0x2006d590>(
    <AVMediaSelectionTrackOption: 0x200297a0, mediaType = sbtl, locale = en, title = (null), option ID = 3, associated forced-only option = <AVMediaSelectionTrackOption: 0x2006d600>>,
    <AVMediaSelectionTrackOption: 0x2006d600, mediaType = sbtl, locale = en, title = (null), option ID = 3, default = YES, forced subtitles only>,
    <AVMediaSelectionTrackOption: 0x20057210, mediaType = sbtl, locale = zh, title = (null), option ID = 4, associated forced-only option = <AVMediaSelectionTrackOption: 0x20044bc0>>,
    <AVMediaSelectionTrackOption: 0x20044bc0, mediaType = sbtl, locale = zh, title = (null), option ID = 4, forced subtitles only>,
    <AVMediaSelectionTrackOption: 0x2002d450, mediaType = sbtl, locale = ce, title = (null), option ID = 5, associated forced-only option = <AVMediaSelectionTrackOption: 0x20028660>>,
    <AVMediaSelectionTrackOption: 0x20028660, mediaType = sbtl, locale = ce, title = (null), option ID = 5, forced subtitles only>
    )

希望这对您有任何用处,因为该主题的可用信息不多。

【讨论】:

以上是关于在 iOS 5 上禁用字幕会在屏幕上留下最后显示的字幕文本的主要内容,如果未能解决你的问题,请参考以下文章

怎么用视频编辑软件制作字幕末屏停留

隐藏子视图会在视图上留下微弱的阴影

无法在 iTunes Connect 上上传 iOS 应用屏幕截图

如何在视频上绘制文本以在 iOS 上显示字幕?

恢复后有时会在 Nativescript-Vue 上显示主屏幕

从 AppDelegate 加载 Storyboard 会在窗口上留下黑色空间