【问题标题】:Can you programmatically detect a change in MPMoviePlayerController currentPlaybackTime你能以编程方式检测 MPMoviePlayerController currentPlaybackTime 的变化吗
【发布时间】:2011-12-11 21:46:08
【问题描述】:

我编写了自定义控件,允许用户通过单击或拖动自定义UIButton 来更改currentPlaybackTimecurrentPlaybackTime,该自定义UIButton 显示一些乐谱的图像。该代码使用触摸事件的 x 位置来更新 currentPlaybackTime 并且一切正常。我还有一个CALayer(一条垂直的红线),向用户显示他们在控件上触摸的位置。

如果用户使用scrubber(滑块)控件更改电影播放器​​的currentPlaybackTime 属性,我现在想做的是更新红线(CALayer 对象)的位置。

显然currentPlaybackTime 总是在电影播放时更新,但有没有办法检测用户是否通过向前或向后跳过来干扰这一点?

非常感谢。

【问题讨论】:

    标签: ios xcode core-animation mpmovieplayercontroller calayer


    【解决方案1】:

    您可以使用 Key-Value-Observing 来跟踪 currentPlaybackTime 在您的 MPMoviePlayerController 中的变化,但这可能会产生大量事件,从而对您的性能产​​生负面影响。也许您也可以将 KVO 与 MPMoviePlayerControllerplaybackState 属性一起使用,我相信当用户开始搜索时它会改变。

    另一种选择是您只需设置一个重复计时器,该计时器会非常频繁地更新,并且每次触发您检查currentPlaybackTime 的新值。但这可能看起来很不稳定,也可能会影响性能。

    【讨论】:

    • 是的,playbackState 是要走的路。谢谢!
    • currentPlaybackTime 不符合 KVO。
    • KMP正确,不能用KVO观察currentPlaybackTime
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多