在iOS上使用AVFoundation为AirPlay视频添加字幕?

问题描述 投票:2回答:2

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

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

ios avfoundation avplayer
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。


0
投票

你可能已经想到了这一点,但是当你播放Apple TV时你的隐藏字幕没有显示的原因可能是你的AppleTV关闭了字幕。

© www.soinside.com 2019 - 2024. All rights reserved.