gpt4 book ai didi

ios - 如何使状态栏在 iOS 的 MPMoviePlayerController 中不消失?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:50 26 4
gpt4 key购买 nike

在 MPMoviePlayerController 中,当控件消失时,甚至状态栏也会随之消失。因为我希望状态栏即使在控件消失时也能出现,所以我放置了以下代码

[[UIApplication sharedApplication] setStatusBarHidden:NO];但是上面的代码没有任何区别,状态栏随着播放器控件一起消失了。如何解决这个问题呢。

请找到下面的代码,让我知道如何纠正它。

- (void) readyPlayer {

mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
if ([mp respondsToSelector:@selector(loadState)])
{
// Set movie player layout
[mp setControlStyle:MPMovieControlStyleFullscreen];
[mp setFullscreen:YES];

// May help to reduce latency
[mp prepareToPlay];

// Register that the load state changed (movie is ready)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerLoadStateChanged:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
} else {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePreloadDidFinish:) name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification
object:nil];
}
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
}

- (void) moviePlayerLoadStateChanged:(NSNotification*)notification {

NSLog(@"moviePlayerLoadStateChanged");
// Unless state is unknown, start playback
if ([mp loadState] != MPMovieLoadStateUnknown)
{
// Remove observer
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerLoadStateDidChangeNotification
object:nil];
[[UIApplication sharedApplication] setStatusBarHidden:NO];

// Rotate the view for landscape playback
[[self view] setBounds:CGRectMake(0, 0, 768, 1000)];

// Set frame of movieplayer
[[mp view] setFrame:CGRectMake(0, 0, 768, 1000)];

// Add movie player as subview
[[self view] addSubview:[mp view]];

// Play the movie
[mp play];
}
}

- (void) moviePreloadDidFinish:(NSNotification*)notification {
// Remove observer
NSLog(@"moviePreloadDidFinish");
[[NSNotificationCenter defaultCenter] removeObserver:nil
name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification
object:nil];

[[UIApplication sharedApplication] setStatusBarHidden:NO];
// Play the movie
[mp play];
}

- (void) moviePlayBackDidFinish:(NSNotification*)notification {
NSLog(@"moviePlayBackDidFinish");
[[UIApplication sharedApplication] setStatusBarHidden:NO];
// Remove observer
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
[self dismissModalViewControllerAnimated:YES];
}

最佳答案

这是 MPMovieControlStyleFullscreen 的一个众所周知的问题。只需使用 MPMovieControlStyleEmbedded controlStyle 就可以了。

顺便说一句,无论如何,对于嵌入式使用来说,这是更合适的 controlStyle

关于ios - 如何使状态栏在 iOS 的 MPMoviePlayerController 中不消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211581/

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