gpt4 book ai didi

ios - 在 viewDidLoad 中运行 MPMoviePlayerController 的奇怪行为

转载 作者:可可西里 更新时间:2023-11-01 06:21:15 25 4
gpt4 key购买 nike

我正在使用 MediaPlayer 框架 在我的应用程序启动后立即播放相当大的电影(~200 MB)。当我尝试在我的 viewDidLoad 中播放视频时,断点表明 View 已添加,但视频没有显示在设备上。

然后我设置了一个按钮来确认视频是否有效。从按钮运行 IBAction 显示没有问题。

然后我就被难住了。我想知道这是否与应用程序启动后立即调用视频这一事实有关。所以我在 viewDidLoad 调用中添加了一个延迟五秒的 NSTimer。瞧,它工作得很好。除非有初始延迟,否则任何人都可以阐明为什么视频无法播放的原因吗?代码如下。

- (void)viewDidLoad {
NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(playMovie) userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:currentTimer forMode:NSRunLoopCommonModes];
[super viewDidLoad];
}

-(IBAction)playMovie
{
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"Speed" ofType:@"mov"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];

[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
}

最佳答案

尝试在 viewDidAppear: 而不是 viewDidLoad 中播放电影。在调用 viewDidLoad 时, View 还不在 View 层次结构中。您仍然可以在 viewDidLoad 中创建 MPMoviePlayerController,只是在 View 实际出现之前不要播放它。

关于ios - 在 viewDidLoad 中运行 MPMoviePlayerController 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com