很长时间以来,我在使用 MPMoviePlayerController 在流式电影上向前或向后搜索时遇到了奇怪的搜索滑块行为。症状是:
. 您在滑块上开始搜索手势,滑块按钮跟随手指。. 释放滑块时,它会跳回手势起始点并悬停到手势完成的点。. 然后从选定的电影时间继续播放。
这当然在视觉上很烦人,尽管功能还可以。这在 iOS 7 上甚至更糟。
感谢您的欢迎帮助。
很长时间以来,我在使用 MPMoviePlayerController 在流式电影上向前或向后搜索时遇到了奇怪的搜索滑块行为。症状是:
. 您在滑块上开始搜索手势,滑块按钮跟随手指。. 释放滑块时,它会跳回手势起始点并悬停到手势完成的点。. 然后从选定的电影时间继续播放。
这当然在视觉上很烦人,尽管功能还可以。这在 iOS 7 上甚至更糟。
感谢您的欢迎帮助。
回答这个问题可能有点晚了,但由于我在谷歌搜索中偶然发现了这个问题,也许这对其他人有帮助。
我用 AVPlayer 遇到了这种行为,发现原因是因为时间观察器在擦洗期间一直在运行。时间观察者负责根据当前播放时间更新擦洗器位置。因此,一旦手势完成移动滑块,时间观察者会将滑块旋钮移回它认为在擦洗操作更新播放时钟之前播放的位置。
我的解决方案是在清理开始时暂时删除这个时间观察者,并在清理结束后重新创建它。
当擦洗开始时:
if (scrubberTimeObserver) {
[player removeTimeObserver:scrubberTimeObserver];
scrubberTimeObserver = nil;
}
请注意,您将想知道您的时间观察者的姓名,以便确保您删除了正确的。
擦洗结束时:
scrubberTimeObserver = [player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(interval, NSEC_PER_SEC)
queue:dispatch_get_main_queue()
usingBlock:^(CMTime time) {
[weakSelf syncScrubber];
}
];