首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放按钮和放映电影之间的延迟

播放按钮和放映电影之间的延迟
EN

Stack Overflow用户
提问于 2010-10-10 05:17:09
回答 4查看 375关注 0票数 0

我有一个简单的视图,它使用presentMoviePlayerViewControllerAnimated:方法在用户按下按钮时创建一个MPMoviePlayerViewController。新的视图控制器滑入并显示电影播放器,到目前为止效果还不错。

然而,当按下按钮时,当前的视图控制器滑出底部,显示一个丑陋的(可能是默认的)白色视图,它停留在任何地方,从半秒到几秒,直到显示电影视图控制器。它似乎依赖于我的网络连接,就好像电影视图控制器在播放播放器之前正在下载电影的一部分。

我是不是做错了什么,或者我如何解决这个问题?我真的更喜欢直接显示电影视图控制器,甚至可以不滑出上一个持有播放按钮的视图控制器,但仍然像模式视图控制器一样进行动画。

谢谢!

克里斯托弗

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-14 06:25:01

我最终只是将视图的背景设置为黑色。不会修复延迟,但会让它看起来更好:

代码语言:javascript
复制
  theMovieVC.view.backgroundColor = [UIColor blackColor];
票数 0
EN

Stack Overflow用户

发布于 2010-10-31 05:39:46

解决方案是在创建父视图时初始化播放器视图控制器,然后在其中的moviePlayer上调用prepareToPlay。这消除了播放按钮被按下时的延迟,并且(我猜)将其移动到用户可以从其播放电影的父视图。

编辑:这消除了延迟,但出于某些原因,初始化电影视图控制器也会在加载时自动播放它,所以这不是一个好的解决方案。

票数 0
EN

Stack Overflow用户

发布于 2010-11-19 02:15:31

这就是我对iOS > 3.2所做的:

代码语言:javascript
复制
- (void) play {
    mMoviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mMovieURL];

    if ([mMoviePlayer respondsToSelector:@selector(loadState)]) 
    {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(moviePreloadDidFinishIOS32:) 
                                                     name:MPMoviePlayerContentPreloadDidFinishNotification 
                                                   object:nil];


        [mMoviePlayer prepareToPlay];
        [mMoviePlayer play];
        mMoviePlayer.controlStyle = MPMovieControlStyleEmbedded;
        [mMoviePlayer setMovieControlMode:MPMovieControlModeDefault];
        [mMoviePlayer setBackgroundColor:[UIColor clearColor]];
    }
}

代码语言:javascript
复制
- (void) moviePreloadDidFinishIOS32:(NSNotification*)notification;
{
    // Remove observer
    [[NSNotificationCenter  defaultCenter] 
     removeObserver:self
     name:MPMoviePlayerContentPreloadDidFinishNotification
     object:nil];

    self.view = mMoviePlayer.view;
}

因此,在viewdidload中,您可以实例化所需的内容(例如UIActivityIndicatorView)。只有在预加载完成后,视图控制器才会被替换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3897903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档