2015-12-02 89 views
2

我已经使用AVPlayer在我的swift应用程序上播放视频。我想在视频中间放置一个播放按钮(自定义按钮)。我知道如何在点击按钮时播放和暂停视频。如何对AVPlayer的播放和暂停动作执行某些操作?

我无法找到当视频从默认按钮播放/暂停时如何显示/隐藏自定义按钮?播放/暂停播放视频时是否有任何听众或某些事件触发?

我也想隐藏默认控件中的“Audio & Subtitles”图标。

+0

你可以在动作上设置'playButton.enabled = false'和'playButton.alpha = 0'。所以当你点击/点击按钮时,其他按钮(或者那个按钮)被禁用,它会消失。使用'IBOutlet'离开那个按钮,然而+ IBAction'。 @Narendra – lukaivicev

+0

@Lukeslvi,谢谢你的回复。但我不是指如何显示/隐藏按钮,但我不能得到什么是如何触发IBAction时,默认播放/暂停按钮被点击?因为无法将动作内部的动作拖动到IBAction的默认按钮。例如。可以说我进入视频屏幕并点击“播放”按钮(默认),视频开始播放,我想隐藏自定义按钮。然后过了一段时间,我点击“暂停”按钮(默认),视频暂停,我想显示自定义按钮。希望现在能够很容易地理解这个问题。 –

回答

1

这里是你如何能听播放器状态变化和隐藏/显示按钮:(假设你的播放器被命名为player和按钮是playButton

player.addObserver(self, forKeyPath: "rate", options: .New, context: nil) // somewhere after player init 
... 
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) { 
    if keyPath == "rate" { 
    playButton.enabled = player.rate == 1 
    } else { 
    super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context) 
    } 
} 

如果球员的速度等于0,则意味着该视频不播放。

+0

我正在使用AVPlayerController并添加“rate”Observer。当我在这种情况下离线时,玩家暂停。但它不检查“速率”观察者方法。 –

+0

@SankalapYadurajSingh,如果您有问题,请创建新问题。或尝试谷歌它。 – rkyr

+0

这是我的新问题,请访问。 http://stackoverflow.com/questions/39411636/avplayerviewcontroller-play-pause-issue-in-ios?noredirect=1#comment66148154_39411636 –