【问题标题】:MPMoviePlayer or AVPlayer Frame advanceMPMoviePlayer 或 AVPlayer 帧前进
【发布时间】:2011-07-16 09:47:30
【问题描述】:

有没有办法使用 MPMoviePlayer 或 AVPlayer 逐帧播放视频文件? 甚至是我不知道的其他电影播放器​​?

这就是我想要做的。我想将视频加载到全屏播放器中,并根据用户交互一次移动一帧内容。这需要非常可靠,因为我需要准确控制电影播放器​​在任何时候显示的帧。

理想情况下,我很想知道是否可以加载视频并使用代码控制显示的帧。

我知道我可以使用 UIImageView 动画来做到这一点,但测试表明这会占用大量内存。

【问题讨论】:

    标签: iphone ios mpmovieplayercontroller avplayer


    【解决方案1】:

    在使用 AVPlayer 时,可以使用其当前 AVPlayerItem 的 - (void)stepByCount:(NSInteger)stepCount 方法前进或后退。

    AVPlayer *mPlayer = [AVPlayer playerWithURL:url];
    [mPlayer.currentItem stepByCount:1];

    【讨论】:

    • @Wizfinger 对我来说,这仅适用于下载/本地资产,不适用于 url。你用网址测试过吗?有关我的问题的更多详细信息,请在此处查看-stackoverflow.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”,但直到昨天我才意识到它有多不可靠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多