ios - iPad - MPMoviePlayer 缩小后消失

标签 ios ipad notifications mpmovieplayercontroller mpmovieplayer

我正在使用 MPMoviePlayer 来流式传输视频 URL。

用户点击 View 后,视频将在 View 的框架中开始。这样就可以了。当视频嵌入时,默认控件会放置一个“放大”按钮。

当用户按下放大键时,视频会正常全屏显示,而不会中断播放。

但是,当用户再次按下缩小按钮时,我遇到三个问题:

  • 视频缩放到屏幕一角然后消失, 而不是回到原来的位置。

  • 视频走到角落后消失,播放结束, 而不是继续播放视频。

  • MPMoviePlayerDidExitFullscreenNotification 永远不会被调用, 仅调用 MPMoviePlayerWillExitFullscreenNotification。我尝试将 nil 和 mediaPlayerController 发送到通知中心。

此外,当按下“完成”按钮时,视频会转到屏幕一角并消失。

我的播放器是通过以下操作创建的:

   moviePlayer=[[MPMoviePlayerController alloc] init];
    moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
    moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
    moviePlayer.shouldAutoplay=YES;
    moviePlayer.controlStyle=MPMovieControlStyleEmbedded;
    moviePlayer.view.hidden = YES;

然后,当用户点击 View 时,会发生以下情况:

- (void) playVideo {

    NSURL *url=[NSURL URLWithString: _news.videoUrl];

    moviePlayer.contentURL = url;
    moviePlayer.view.hidden = NO;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillExitFullScreen:) name:MPMoviePlayerWillExitFullscreenNotification object:moviePlayer];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreen:) name:MPMoviePlayerDidExitFullscreenNotification object:moviePlayer];

    [moviePlayer play];

}



- (void) moviePlayerWillExitFullScreen:(NSNotification*)notification {
    NSLog(@"WILL EXIT FULLSCREEN");

}

- (void) moviePlayerDidExitFullScreen:(NSNotification*)notification {
    NSLog(@"EXITED FULLSCREEN");  //NOT CALLED
}


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

    NSLog(@"FINISHED PLAYIIING");

    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
    moviePlayer.view.hidden = YES;
}

最佳答案

好吧,同时我将回答 4 个问题中的 3 个问题:

  • 视频缩放到屏幕一角然后消失,而不是返回到原始位置。

  • 视频走到角落后消失,播放结束,而不是继续播放视频。

  • 此外,当按下“完成”按钮时,视频会转到屏幕一角并消失。

问题是退出全屏模式后,会调用 -viewWillAppearAnimated 方法。在该方法中修改了布局,这就是播放停止并且 View 被发送到角落的原因。

关于ios - iPad - MPMoviePlayer 缩小后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741846/

相关文章:

IOS/objective-C : Out of Range Error with NSPredicate

ios - 将 Parse.com 用户链接到地址簿联系人

notifications - 配置 JIRA 默认观察者列表

facebook - 如何构建像 facebook 那样的实时推送通知功能?

javascript - 使用主屏幕图标会破坏 iPhone 上的设备高度

ios - 什么是 iPhone 7(new) 屏幕分辨率、像素和尺寸?

javascript - 如何在 raphael paper.image 中嵌入 base64 图像格式

objective-c - Split View Controller 上的演示表单随机崩溃

database - 内存泄漏: How to stop?

c++ - 安装应用程序EventHandler/NSNotificationCenter不通知事件(NSN)