首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMoviePlayer setCurrentPlaybackTime iOS

MPMoviePlayer setCurrentPlaybackTime iOS
EN

Stack Overflow用户
提问于 2012-05-17 12:41:09
回答 3查看 3.7K关注 0票数 3

我使用MPMoviePlayer播放我的视频,问题是当用户按下设备的home按钮时,我保存视频的当前位置,而不是当他再次午餐应用程序时,我希望他从他离开的地方开始,所以我使用了iOS 5,它在iOS 5中工作得很好,但在从视频开始的iOS 5.1中却没有。

有没有人有解决这种问题的办法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-18 12:21:01

我的问题解决了,我会解释我到目前为止所做的事情。

当我找不到这个行为的解决方案/解释(我觉得很奇怪)时,我就开始做大量的日志记录,所以我注意到,当我记录当前的位置时,我总是得到(在iOS 5.1中)。

代码语言:javascript
复制
  currentPlaybackTime = nan

但在iOS 5中,我得到了一个正常值为0.00000

因此,我制作了一个计时器(它自己重复)来记录当前的 time ,因此我注意到它在一段时间后从nan变为0.00000

我得出的结论是,在设置PlaybackTime之前,我需要等待一点(不明白为什么),在等待了1 ms (1/1000 s)之后,就可以了。

票数 7
EN

Stack Overflow用户

发布于 2012-05-17 13:24:55

您试过使用seekToTime (仅限AvPlayer)而不是setCurrentPlaybackTime吗?

如下所示:

Why does MPMoviePlayerController setCurrentPlaybackTime goes to the wrong time?

注意:这个解决方案是针对AvPlayer的,而不是针对MPMoviePlayer的(即使很难,它没有在列出的链接中显示)。但是在切换到AvPlayer之前,我会等待更多的答案。

票数 2
EN

Stack Overflow用户

发布于 2014-07-25 11:00:39

我们应该在获得currentPlaybackTime通知之后设置MPMoviePlayerLoadStateDidChangeNotification。

要知道是否加载了moviePLayer,首先需要注册MPMoviePlayerLoadStateDidChangeNotification

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieLoadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];

加载电影播放器后,将调用movieLoadStateDidChange:,然后检查MPMovieLoadStatePlaythroughOK加载状态并设置currentPlaybackTime。

代码语言:javascript
复制
- (void)movieLoadStateDidChange:(NSNotification *)notification
{
    MPMoviePlayerController *player = notification.object;
    MPMovieLoadState loadState = player.loadState;

    /* Enough data has been buffered for playback to continue uninterrupted. */
    if (loadState & MPMovieLoadStatePlaythroughOK)
    {
        //should be called only once , so using self.videoLoaded - only for  first time  movie loaded , if required. This function wil be called multiple times after stalled
        if(!self.videoLoaded)
        {
            self.moviePlayerController.currentPlaybackTime = self.currentPlaybackTime;
            self.videoLoaded = YES;
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10635926

复制
相关文章

相似问题

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