Можете ли вы программно обнаружить изменение в MPMoviePlayerController currentPlaybackTime - PullRequest
0 голосов
/ 12 декабря 2011

Я написал пользовательский элемент управления, который позволяет пользователю изменять currentPlaybackTime из MPMoviePlayerController, щелкая или перетаскивая пользовательский UIButton, который отображает изображение некоторой музыкальной записи. Код использует позицию X события касания для обновления currentPlaybackTime, и все работает нормально. У меня также есть CALayer (вертикальная красная линия), которая показывает пользователю, где он коснулся элемента управления.

Теперь мне нужно обновить положение красной линии (объект CALayer), если пользователь изменяет свойство currentPlaybackTime проигрывателя фильмов, используя элемент управления «ползунок» (ползунок).

Очевидно, что currentPlaybackTime всегда обновляется во время воспроизведения фильма, но есть ли способ определить, вмешивается ли пользователь в это, пропуская вперед или назад?

Большое спасибо.

1 Ответ

1 голос
/ 12 декабря 2011

Вы можете использовать Key-Value-Observing для отслеживания изменений currentPlaybackTime в вашем MPMoviePlayerController, но это может вызвать много событий и, таким образом, негативно повлиять на вашу производительность. Возможно, вы также можете использовать KVO со свойством playbackState вашего MPMoviePlayerController, я думаю, оно меняется, когда пользователь начинает поиск.

Другой альтернативой является то, что вы просто устанавливаете повторяющийся таймер, который обновляется довольно часто, и каждый раз при его запуске вы проверяете новое значение currentPlaybackTime. Но это может выглядеть нестабильно, а также может повлиять на производительность.

...