2016-12-12 7 views
1

私のApple TV用アプリは、URLからオーディオを引き出して再生しています。しかし、もう一度ボタンを押すと一時停止する必要があります。Apple TVのリモコンの選択を認識

私はそれがオーディオを再生しているかどうかを確認するためにUIButtonにaddTargetを追加しました。私は 'クリック' 認識したりするにはどうすればよい

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController plays:]: unrecognized selector sent to instance 0x7fe917802b80' 

これは私のviewDidLoad

player = AVPlayer(url:url) 
let playerLayer = AVPlayerLayer(player: player) 
let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 10, height: 50)) 
playerLayer.frame = rect 
self.view.layer.addSublayer(playerLayer) 
playButton.addTarget(self, action: "plays:", for: UIControlEvents.primaryActionTriggered) 

plays

func plays(sender: UIButton!){ 
    NSLog("Clicked") 
    if player?.rate == 0{ 
     player!.play() 
     print("<PLAYING") 
    }else{ 
     player!.pause() 
    } 
} 

は、しかし、これは私に次のエラーを与える関数でありますリモコンの 'press'を押して、機能playsを動作させますか?

+0

ターゲットのアクションで#selectorを使用しています。 – koropok

+0

メソッドの最初のパラメーターの前にアンダースコアを追加します。 'func plays(_ sender:UIButton!)' –

+0

そして適切なセレクタ '#selector(plays(_ :)) –

答えて

1

Swift 3では、メソッドの最初のパラメータの前にアンダースコアが必要です。

func plays(_ sender: UIButton!) { 

と適切なセレクタ構文:

#selector(plays(_:)) 
関連する問題