Как обнаружить YTPlayerState.Ended с помощью Swift?
Я играю видео You Tube в своем приложении и пытаюсь определить, когда видео приостановлено или закончено? Я нашел kYTPlayerState
функция в файле.m, но не удается преобразовать его использование в Swift. Вот что у меня есть....
func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState)
{
switch (state) {
case YTPlayerState.Playing:
print("Started playback");
break;
case YTPlayerState.Paused:
print("Paused playback");
break;
case YTPlayerState.Ended:
print("Ended playback");
break;
default:
break;
}
}
а также.....
if playerView(player , didChangeToState: YTPlayerState.Ended)
{
/// Do Something....
}
.... который я помещаю в ViewDidLoad(). Я также получаю сообщение об ошибке в моем утверждении if, которое говорит Type "()" does not conform to protocol "Boolean Type"
, Если вы знаете, как это исправить, или я что-то пропускаю, пожалуйста, помогите.
Я инициализирую игрока в этом представлении с @IBOutlet var player: YTPlayerView!
1 ответ
playerView:didChangeToState
это метод делегата, обратный вызов. Вы не должны вызывать его напрямую, как во втором блоке кода. Если вы установите YTPlayerViewDelegate
на ваш взгляд контроллер (player.delegate = self
в viewDidLoad
) playerView:didChangeToState
должен вызываться автоматически, так как игрок меняет состояние. Просто убедитесь, что вы реализуете метод изменения состояния.
func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState)
{
case YTPlayerState.Ended:
// handle ended state
break;
default:
break;
}
}