【问题标题】:Cannot present MoviePlayerView animation while a dismissMoviePlayerView animation is in progress在dismissMoviePlayerView 动画正在进行时无法呈现MoviePlayerView 动画
【发布时间】:2014-07-02 20:52:32
【问题描述】:

我有一个应用程序可以按顺序显示图像和/或电影。问题是,我不能关闭一个电影播放器​​,然后再展示另一个。如果我尝试,我会收到消息“警告:在演示过程中尝试在 MyViewController 上演示 MPMoviePlayerViewController!”与其他动画呈现/解除方法不同,没有完成处理程序,也没有呈现/解除的非动画版本。

这是我的代码的简化版本:

-(void) play
{
    [[window rootViewController] presentMoviePlayerViewControllerAnimated:player];
    [[_player moviePlayer] play];
}

-(void) videoNotification:(NSNotification *) notification
{
    if([notification.name isEqualToString:MPMoviePlayerPlaybackDidFinishNotification])
    {
        [[window rootViewController] dismissMoviePlayerViewControllerAnimated];
        [_canvasManager showNextCanvas]; //this calls play on the next canvas
    }
}

关于如何实现我的目标的任何想法/提示?

【问题讨论】:

    标签: ios objective-c animation uiviewcontroller movieplayer


    【解决方案1】:

    查看dismissViewControllerAnimated:completion: 之后,我能够通过创建 MPMoviePlayerViewController 的子类并覆盖 -(void)viewDidDisappear 来创建完成处理程序。 viewDidDisappear 在dismissMoviePlayerViewControllerAnimated 结束时被调用。

    @interface MyMoviePlayerViewController : MPMoviePlayerViewController
    {
        void (^_viewDidDisappearCallback)(void);
    }
    
    - (void)setViewDidDisappearCallback:(void (^)(void))callback;
    
    @end    
    
    @implementation MyMoviePlayerViewController
    
    - (id) initWithContentURL:videoPath
    {
        self = [super initWithContentURL:videoPath];
        _viewDidDisappearCallback = nil;    
        return self;
    }
    
    - (void)setViewDidDisappearCallback:(void (^)(void))callback
    {
        _viewDidDisappearCallback = [callback copy];
    }
    
    - (void)viewDidDisappear:(BOOL)animated
    {
        [super viewDidDisappear:animated];    
        if(_viewDidDisappearCallback != nil)
            _viewDidDisappearCallback();
    }
    
    @end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多