Putting a video to pause state before playing
I am using MVMoviePlayer to play videos in the app. Right now, a black screen comes after taping the play button and the video starts playing. But, the black screen is casing some discofort from the user end point of view. So, i want to start the video from a paused state. In order to do this, i thought of putting the pl开发者_运维知识库ayer to paused state before playing it..
Is there a way to do this???
You can hide your MPMoviePlayer
until that annoying black flicker is gone.
To ensure that the black flicker is gone, you can check if the MPMoviePlayer
's loadState
is 3 ( which means MPMovieLoadStatePlayable
| MPMovieLoadStatePlaythroughOK
) and playbackState
is 1 (which means MPMoviePlaybackStatePlaying
)
First hide your MPMoviePlayer
:
yourMPMoviePlayer.view.hidden = YES;
Just add an observer to be notified when loadState changes:
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(loadStateChanged:)
name:MPMoviePlayerLoadStateDidChangeNotification
object:nil];
And make your MPMoviePlayer visible again when you are notified and conditions are met:
- (void)loadStateChanged:(NSNotification *)sentNotification
{
if (player.loadState == (MPMovieLoadStatePlaythroughOK | MPMovieLoadStatePlayable) && player.playbackState == MPMoviePlaybackStatePlaying)
yourMPMoviePlayer.view.hidden = NO;
}
精彩评论