2016-04-04 8 views
2

アプリでTubeの動画を再生しているときに、動画が一時停止または終了したときを検出しようとしていますか?私は.mファイルにkYTPlayerState関数を見つけましたが、Swiftへの変換に問題がありました。ここに)私はのviewDidLoad(に置かれた....私が持っているものSwiftを使用してYTPlayerState.Endedを検出する方法は?

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.... 
    } 

です。私はまた、Type "()" does not conform to protocol "Boolean Type"と言う私のifステートメントでエラーを取り返そうとしています。これを修正する方法が分かっている場合、または何かを残しておいてください。

私は@IBOutlet var player: YTPlayerView!

+0

ちょっとチャールズ私の答えはあなたを助けましたか?他に質問がある場合はお知らせください。 – JAL

+0

@ JALはい、それは素晴らしい仕事をしました。私は混乱し、viewWillLoadで 'if state'ステートメントを実装しようとしたと思います。なぜなら私は他のイベント/監視プロトコルでそれを行っているからです。 –

+0

すばらしい、それを聞いてうれしい!私の答えが受け入れられたとマークして、私の答えがあなたを助けたのと同じ問題を他のユーザーに見せるようにしてください。他の質問がある場合は、ここで私にフォローアップするか、別の質問にしてください。ハッピーコーディング! – JAL

答えて

1

playerView:didChangeToStateと、このビューでプレーヤーを初期化していますが、デリゲートメソッド、コールバックです。 2番目のコードブロックのように直接呼び出すべきではありません。表示コントローラーにYTPlayerViewDelegateを設定した場合(player.delegate = selfviewDidLoad)、プレーヤーが変更されると自動的にplayerView:didChangeToStateが呼び出されます。あなたが状態変更メソッドを実装していることを確認してください。

func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState) 
{ 
    case YTPlayerState.Ended: 
     // handle ended state 
     break; 
    default: 
     break; 
    } 
} 
+0

こんにちは@ JAL、私は同じ考えを使用しますが、 'YTPlayerState.unstarted'と' YTPlayerState.queued'を追加すると、それらの通知は処理されません。あなたはそれについてどんな考えですか? –

関連する問題