在 Apple TV 遥控器上识别 select
recognizing a select on Apple TV remote
我的 Apple tv 应用正在从 URL 中提取音频并播放。但是,再次按下按钮时需要暂停。
因此我向 UIButton 添加了一个 addTarget 以查看它是否正在播放音频。
这是我的 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()
}
}
但是这给了我以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController plays:]: unrecognized selector sent to instance 0x7fe917802b80'
如何识别遥控器上的 'click' 或 'press' 并让函数 plays
发挥作用?
在 Swift 3 中,您需要在方法的第一个参数前添加下划线。
func plays(_ sender: UIButton!) {
以及正确的选择器语法:
#selector(plays(_:))
我的 Apple tv 应用正在从 URL 中提取音频并播放。但是,再次按下按钮时需要暂停。
因此我向 UIButton 添加了一个 addTarget 以查看它是否正在播放音频。
这是我的 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()
}
}
但是这给了我以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController plays:]: unrecognized selector sent to instance 0x7fe917802b80'
如何识别遥控器上的 'click' 或 'press' 并让函数 plays
发挥作用?
在 Swift 3 中,您需要在方法的第一个参数前添加下划线。
func plays(_ sender: UIButton!) {
以及正确的选择器语法:
#selector(plays(_:))