2

有什么方法可以在 iOS 上使用AVPlayer带有 av 的AirPlay 显示字幕AVPlayerItem?我目前通过向视图层次结构添加标签来实现字幕,这在应用程序中运行良好,但这显然不适用于 AirPlay。

那么,有没有办法使用 AirPlay 显示字幕AVFoundation

4

2 回答 2

1

您提到您已经通过为 CC 创建视图并将其添加到视频顶部来实现自己的 CC。使用 AirPlay 镜像会更容易。您可以通过检测外部屏幕然后在其上放置内容来做到这一点。

// detecting an external screen
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myExternalScreenDetected:) name:UIScreenDidConnectNotification object:nil];

//
// Grab external screen then add the content
- (void)myExternalScreenDetected:(UIScreen *)externalScreen {
    UIWindow *window = [[UIWindow alloc] initWithFrame:externalScreen.bounds];

    // ...add content to the window...

    window.screen = externalScreen;
    window.hidden = NO;
}

另一种选择是使用本机隐藏式字幕。这可以通过将语言文件(WebVTT 格式)添加到 m3u8 播放列表中来完成。我没试过这个。似乎更复杂。您可以在这里观看 Apple 的视频:https ://developer.apple.com/videos/wwdc/2012/?id=512

镜像功能似乎比原生方式更容易实现 CC。然而,原生视频播放具有更好的性能,因为 AppleTV 会加载播放列表文件 (m3u8) 并直接播放内容。镜像 AirPlay 必须重新压缩输出并发送到 AppleTV。

于 2012-10-17T21:54:11.163 回答
0

您可能已经知道这一点,但是当您在 Apple TV 上播放时隐藏式字幕未显示的原因可能是您的 AppleTV 已关闭隐藏式字幕。

于 2013-08-07T16:15:26.973 回答