有没有一种方法可以禁用MPMoviePlayerController的全屏按钮?
有没有一种方法可以禁用MPMoviePlayerController的全屏按钮?
刚刚完成了:
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieEventFullscreenHandler:)
name:MPMoviePlayerWillEnterFullscreenNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieEventFullscreenHandler:)
name:MPMoviePlayerDidEnterFullscreenNotification
object:nil];
self.moviePlayer.controlStyle = MPMovieControlStyleEmbedded;
}
- (void)movieEventFullscreenHandler:(NSNotification*)notification {
[self.moviePlayer setFullscreen:NO animated:NO];
[self.moviePlayer setControlStyle:MPMovieControlStyleEmbedded];
}
根据您的需求,您还可以在播放器视图上禁用所有用户交互。
player.view.userInteractionEnabled = NO;
您可以将controlStyle设置为Fullscreen。这些控件略有不同,但没有全屏按钮!
[_moviePlayerController setControlStyle:MPMovieControlStyleFullscreen];
[player setMovieControlMode:MPMovieControlModeNone];
有一个作弊方法:
MPMoviePlayerController *mpc = (...some instance...)
UIView *fsbutton = [[mpc view] viewWithTag:512];
[fsbutton setHidden:YES];
viewDidAppear:
或类似的方法中进行操作,因为MoviePlayer视图会在didMoveToWindow
或didMoveToSuperview
方法中设置自己,这些方法会在viewWillAppear:
之后执行。所以您将看到全屏按钮的短暂闪现。其他明显的问题包括:易受损(尽管在3.2-4.2版本中可以使用)与苹果可能更改512标记值;当然,苹果不希望您这样做。MPMovieControlStyleNone
并编写自己的传输控件,这需要更多的工作。为了禁用全屏模式的切换,无论是通过按钮还是捏合手势,您可以使用以下代码:
moviePlayer.controlStyle = MPMovieControlStyleNone;
moviePlayer.view.userInteractionEnabled =NO;
全屏按钮以及暂停按钮可以被移除。
[self.videoPlayer setControlStyle:MPMovieControlStyleNone];
这在iOS 7和iPhone 5s上可行。
Add Notification:
MPMoviePlayerDidEnterFullscreenNotification : @"moviePlayFullscreenNote:"
- (void)moviePlayFullscreenNote:(NSNotification*)notification
{
if (notification.object == self.videoPlayer)
{
[self.videoPlayer setFullscreen:NO animated:YES];
self.videoPlayer.controlStyle = MPMovieControlStyleEmbedded;
}
}