2

我正在我的应用中播放 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!

4

1 回答 1

2

playerView:didChangeToState是一个委托方法,一个回调。您不应该像在第二个代码块中那样直接调用它。如果您将 设置YTPlayerViewDelegate为您的视图控制器(player.delegate = selfin viewDidLoadplayerView:didChangeToState,则应在播放器更改状态时自动为您调用。只要确保你实现了状态改变方法。

func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState)
{
    case YTPlayerState.Ended:
        // handle ended state
        break;
    default:
        break;
    }
}
于 2016-04-04T01:57:43.890 回答