有什么方法可以在 iOS 上使用AVPlayer
带有 av 的AirPlay 显示字幕AVPlayerItem
?我目前通过向视图层次结构添加标签来实现字幕,这在应用程序中运行良好,但这显然不适用于 AirPlay。
那么,有没有办法使用 AirPlay 显示字幕AVFoundation
?
有什么方法可以在 iOS 上使用AVPlayer
带有 av 的AirPlay 显示字幕AVPlayerItem
?我目前通过向视图层次结构添加标签来实现字幕,这在应用程序中运行良好,但这显然不适用于 AirPlay。
那么,有没有办法使用 AirPlay 显示字幕AVFoundation
?
您提到您已经通过为 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。
您可能已经知道这一点,但是当您在 Apple TV 上播放时隐藏式字幕未显示的原因可能是您的 AppleTV 已关闭隐藏式字幕。