是否有任何方法可以使用av AVPlayer
和anAVPlayerItem
在iOS上使用AirPlay显示字幕?我目前通过向视图层次结构添加标签来实现字幕,这在应用程序中运行良好,但这显然不适用于AirPlay。
那么,有没有办法使用AVFoundation
在AirPlay上显示字幕?
您提到您已经通过为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关闭了字幕。