MPMoviePlayer 或 AVPlayer 帧前进
Posted
技术标签:
【中文标题】MPMoviePlayer 或 AVPlayer 帧前进【英文标题】:MPMoviePlayer or AVPlayer Frame advance 【发布时间】:2011-07-16 09:47:30 【问题描述】:有没有办法使用 MPMoviePlayer 或 AVPlayer 逐帧播放视频文件? 甚至是我不知道的其他电影播放器?
这就是我想要做的。我想将视频加载到全屏播放器中,并根据用户交互一次移动一帧内容。这需要非常可靠,因为我需要准确控制电影播放器在任何时候显示的帧。
理想情况下,我很想知道是否可以加载视频并使用代码控制显示的帧。
我知道我可以使用 UIImageView 动画来做到这一点,但测试表明这会占用大量内存。
【问题讨论】:
【参考方案1】:在使用 AVPlayer 时,可以使用其当前 AVPlayerItem 的 - (void)stepByCount:(NSInteger)stepCount 方法前进或后退。
AVPlayer *mPlayer = [AVPlayer playerWithURL:url]; [mPlayer.currentItem stepByCount:1];
【讨论】:
@Wizfinger 对我来说,这仅适用于下载/本地资产,不适用于 url。你用网址测试过吗?有关我的问题的更多详细信息,请在此处查看-***.com/questions/40000849/… 这并不适用于所有情况:(即使对于本地资产,有时它也会跳过近 0.5 秒。 @bojan 它取决于视频的帧速率。低帧速率意味着更大的跳跃。 @Mr.Zystem 帧速率是多少并不重要。我遇到了高帧率(120fps)的问题。根据文档,它取决于The size of each step depends on the receiver’s enabled AVPlayerItemTrack objects (see tracks).
,但我不知道如何。我最终得到了适用于所有帧速率的“手动”解决方案。顺便提一句。我之前使用过“stepByCount”,但直到昨天我才意识到它有多不可靠。以上是关于MPMoviePlayer 或 AVPlayer 帧前进的主要内容,如果未能解决你的问题,请参考以下文章
MPMoviePlayer setCurrentPlayBackTime 不起作用