iosavplayer

AVPlayer, notification for play/pause state?


I'm searching for a way to get notified the exact moment when AVPlayer starts playing. There's the "rate" property, but currently I am checking it periodically with an NSTimer to get updates.

I tried KVO, but apparently it's not KVO compliant.

I know that there are events when the player ENDED. But i'm talking about pause here.

I also KVO subscribed to AVPlayerItem's "status", but it's showing me when the HTTP asset has finished caching, no play/pause. I also started collecting all calls of play/pause, requesting an instant UI update afterwards, but it takes some more runloops before AVPlayer really starts playing. I'd just love to update my button instantly.


Solution

  • For iOS 10 onwards You can check new property of AVPlayer timeControlStatus.

    if(avPlayerObject.timeControlStatus==AVPlayerTimeControlStatusPaused)
    {
    //Paused mode
    }
    else if(avPlayerObject.timeControlStatus==AVPlayerTimeControlStatusPlaying)
    {
     //Play mode
    }