我是一名创建 Apache Cordova 应用程序的 Web 开发人员,所以我对 Objective-C 的了解很少。一切都很好,直到我尝试用视频补充启动画面。它有点做,但不完全。它首先显示 Default.png,然后是 SplashScreenLoader。然后它实际上播放了视频,我知道这一点,因为发出了音频,但没有显示视频层。
我发现 self.window 或 self.viewController 都在 didFinishLaunchingWithOptions 中定义,因此它们不存在于 - (id) init 方法中。因此,我找不到将其放置在加载飞溅顶部的方法。
我的 init 方法目前在 AppDelegate.m 中如下所示:
- (id) init {
NSString *moviePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Splash_v1.mp4"];
NSURL *movieURL = [NSURL fileURLWithPath:moviePath];
MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
moviePlayer.controlStyle = MPMovieControlStyleNone;
[moviePlayer.view setFrame: self.window.bounds];
[self.window addSubview:moviePlayer.view];
[self.window makeKeyAndVisible];
[moviePlayer play];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
[CDVURLProtocol registerURLProtocol];
return [super init];
}
这里 self.window 为空,我还尝试使用以下代码设置 self.window:
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
...没有占上风。它实际上设置了它,但是对于后续代码它不想这样做。
所以我想知道的是,在 didFinishLaunchingWithOptions 启动之前,我如何将此视频放在启动画面的内容之上?
提前致谢,//彼得