gpt4 book ai didi

iphone - iOS 媒体框架

转载 作者:行者123 更新时间:2023-11-28 23:09:53 25 4
gpt4 key购买 nike

我正在将一些视频应用到我的 iPad 应用程序中,并且效果很好。但我遇到的问题是,当我离开 View 导航到其他地方时,视频音频会在后台继续播放。有没有办法在关闭 View 之前完全停止视频并将其从 View 中删除?

我试过:

[moviePlayerController 停止]; - 但这似乎并没有阻止电影它只是让应用程序崩溃。

[moviePlayerController.view removeFromSuperview]; - 从 View 中删除视频但不停止音频。

这是我的代码:

- (IBAction)PlayMediaButton:(id)sender
{

[moviePlayerController stop];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

NSString *movpath = [[NSBundle mainBundle] pathForResource:@"albert" ofType:@"mp4"];
MPMoviePlayerViewController* mpviewController = [[MPMoviePlayerViewController alloc]
initWithContentURL:[NSURL fileURLWithPath:movpath]];

if ([[NSFileManager defaultManager] fileExistsAtPath:movpath]) //Does file exist?
{
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:movpath]];

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

moviePlayerController.view.frame = CGRectMake(38, 37, 986, 618);
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];

if ([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) //Allow airplay if availabe
[moviePlayerController setAllowsAirPlay:YES];

[moviePlayerController play];

}
}



- (void)moviePlaybackComplete:(NSNotification *)notification
{
MPMoviePlayerController *moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];

[moviePlayerController.view removeFromSuperview];
[moviePlayerController release];
}

最佳答案

如果我没听错,你应该在 -viewWillDisappear: 中停止电影播放器​​ Controller 。

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[moviePlayerController stop];
}

编辑 刚注意到您正在创建一个 MPMoviePlayerViewController 而不是 MPMoviePlayerController。前者旨在以模态方式显示,因为它是 UIViewController 的子类。这解释了崩溃是因为 MPMoviePlayerViewController 没有响应 -stop 消息。因此,要么使用 -presentModalViewController:animated: 显示 moviePlayerController ,要么将其类型更改为 MPMoviePlayerController 并将其添加到您的 View 中,就像您现在所做的那样。

关于iphone - iOS 媒体框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579658/

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