我正在将一个mp4视频加载到AVPlayerLayer中,并将其放置在速度设置为0的超级层中(请参阅下面的原因)。视频播放严重不良。每秒一次,玩家输出3-4帧。
视频大致跟随播放时间,因此我认为它的主时钟是好的。
我对它进行了分析,主线程是空闲的,除了每秒一次。此外,每秒一次,即使我预装了曲目(奇怪),也会从磁盘读取一些字节。
一时兴起,我尝试通过调用AVPlayer上的seekToTime在10ms定时器上手动推进电影。我确认定时器每隔10ms调用一次,但AVPlayerLayer每秒只更新一次。
有没有办法让AVPlayer更及时地输出帧?我应该放弃AVPlayer而选择Core Video并手动输出帧吗?
支持层的速度设置为0的原因是除了AVPlayerLayer之外我还设置了几个其他视图,并将路径CoreAnimations应用于它们。 UIPanGestureRecognizer驱动支持层的时间,从而产生用户驱动的动画。
请注意,即使不平移,播放也会断断续续。