作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 Apple 的 MPMoviePlayerController 文档:
MPMoviePlayerPlaybackDidFinishNotification -如果电影播放器以全屏模式显示并且用户点击“完成”按钮,则不会发送此通知。
在我看来这是完全错误的。使用下面的代码,当我点击完成按钮时,playerPlaybackDidFinish 就会被调用。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerPlaybackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.player];
- (void) playerPlaybackDidFinish:(NSNotification*)notification
{
NSLog(@"WHY?");
self.player.fullscreen = NO;
}
我需要区分用户点击“完成”按钮和电影在播放过程中完成的情况。当电影结束时,playerPlaybackDidFinish 确实会被调用,但就像我说的,当您点击“完成”时,它也会被调用。
最佳答案
以下是如何检查 MPMoviePlayerPlaybackDidFinishReasonUserInfoKey,它是 MPMoviePlayerPlaybackDidFinishNotification 通知的一部分
- (void) playbackDidFinish:(NSNotification*)notification {
int reason = [[[notification userInfo] valueForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] intValue];
if (reason == MPMovieFinishReasonPlaybackEnded) {
//movie finished playin
}else if (reason == MPMovieFinishReasonUserExited) {
//user hit the done button
}else if (reason == MPMovieFinishReasonPlaybackError) {
//error
}
}
关于iphone - MPMoviePlayerPlaybackDidFinishNotification 在不应调用时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158453/
我是一名优秀的程序员,十分优秀!