gpt4 book ai didi

iphone - 如果视频文件损坏,MPMoviePlayerViewController 可以返回错误吗?

转载 作者:可可西里 更新时间:2023-11-01 05:37:24 24 4
gpt4 key购买 nike

我正在下载视频并将其保存在某个目录中,以便用户之后可以播放该文件。

它在所有情况下都运行良好,例如由于网络波动而停止下载并再次恢复时。但有时文件已完全下载但未在 MPMoviePlayerViewController 中播放。

我正在使用 ASIHTTPRequest 在后台下载视频文件。

观察:可能是在下载的时候,网络有些波动,文件可能损坏了。

问题:我如何知道下载的文件已损坏? (通过 MPMoviePlayerViewControll)

有什么建议吗?下面是播放代码:

@ACB...我使用了您的代码,但它总是处于其他情况:

    playerViewController = [[MPMoviePlayerViewController alloc]initWithContentURL:url];

player = [playerViewController moviePlayer];
player.movieSourceType = MPMovieSourceTypeFile;
[player prepareToPlay];

if(player.loadState == MPMovieLoadStatePlayable)
{
playerViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentMoviePlayerViewControllerAnimated:playerViewController];


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerInterruptByUser:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:playerViewController.moviePlayer];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:playerViewController.moviePlayer];

//[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerFinished:) name:UIApplicationDidEnterBackgroundNotification object:playerViewController.moviePlayer];

[player play];
}
else
{
corruptVideoAlert = [[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Corrupt Video", nil) message:NSLocalizedString(@"This video is corrupted due to some network error. We suggest you to download again. Do you want to download it again?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil),nil];
[corruptVideoAlert show];
[corruptVideoAlert release];
}

最佳答案

我发现了类似的问题,我解决了这个问题。试试下面的代码:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerPlayingErrorNotification:) name:MPMoviePlayerPlaybackDidFinishNotification object:playerViewController.moviePlayer];

-(void)playerPlayingErrorNotification:(NSNotification*)notif
{

NSNumber* reason = [[notif userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
switch ([reason intValue]) {
case MPMovieFinishReasonPlaybackEnded:
NSLog(@"Playback Ended");
break;
case MPMovieFinishReasonPlaybackError:
NSLog(@"Playback Error");
[self performSelector:@selector(CorruptVideoAlertView) withObject:nil afterDelay:1.0];
break;
case MPMovieFinishReasonUserExited:
NSLog(@"User Exited");
break;
default:
break;
}
}

如果它也适合您,请接受它。祝你有美好的一天。

关于iphone - 如果视频文件损坏,MPMoviePlayerViewController 可以返回错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578686/

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