开发者

Putting a video to pause state before playing

开发者 https://www.devze.com 2023-03-26 08:51 出处:网络
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 u

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;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号