# VideoPlayerDelegate

    @objc public protocol VideoPlayerDelegate: class

The Video Player delegate protocol defines the event methods available for a Video.

### All Optional Callbacks

- `onBufferingStart()`

  event occurs on Buffering of Video Start.

  #### Declaration

  Swift

      @objc optional func onBufferingStart()

- `onBufferingComplete()`

  event occurs on Buffering of Video Complete.

  #### Declaration

  Swift

      @objc optional func onBufferingComplete()

- `onBufferingProgress(_:)`

  event occurs asynchronously when video buffering is in progress.

  #### Declaration

  Swift

      @objc optional func onBufferingProgress(_ progress: Int)

  #### Parameters

  `progress` | current Buffer Progerss

- `onCurrentPlayTime(_:)`

  event occurs continously when video streaming is going on.

  #### Declaration

  Swift

      @objc optional func onCurrentPlayTime(_ progress: Int)

  #### Parameters

  `progress` | current playing time of video.

- `onStreamingStarted(_:)`

  event occurs when video streaming start.

  #### Declaration

  Swift

      @objc optional func onStreamingStarted(_ duration: Int)

  #### Parameters

  `duration` | total duration of video.

- `onStreamCompleted()`

  event occurs when video streaming completed.

  #### Declaration

  Swift

      @objc optional func onStreamCompleted()

- `onPlayerInitialized()`

  event occurs when video is shared with TV for the first time.

  #### Declaration

  Swift

      @objc optional func onPlayerInitialized()

- `onPlayerChange(_:)`

  event occurs when different type of media is shared with TV. (video is shared after photo/audio share)

  #### Declaration

  Swift

      @objc optional func onPlayerChange(_ playerType: String)

  #### Parameters

  `playerType` | current player type (photo/audio/video)

- `onPlay()`

  event occurs when paused video is played.

  #### Declaration

  Swift

      @objc optional func onPlay()

- `onPause()`

  event occurs on video pause.

  #### Declaration

  Swift

      @objc optional func onPause()

- `onStop()`

  event occurs on video stop.

  #### Declaration

  Swift

      @objc optional func onStop()

- `onForward()`

  event occurs on fast forwarding the video.

  #### Declaration

  Swift

      @objc optional func onForward()

- `onRewind()`

  event occurs on rewind the video.

  #### Declaration

  Swift

      @objc optional func onRewind()

- `onMute()`

  event occurs on Player mute.

  #### Declaration

  Swift

      @objc optional func onMute()

- `onUnMute()`

  event occurs on Player unMute.

  #### Declaration

  Swift

      @objc optional func onUnMute()

- `onNext()`

  event occurs when Player plays next content.

  #### Declaration

  Swift

      @objc optional func onNext()

- `onPrevious()`

  event occurs when Player plays previous content.

  #### Declaration

  Swift

      @objc optional func onPrevious()

- `onControlStatus(_:muteStatus:mode:)`

  provides the status of play controls like volume, mute/unmute and mode of player like single or repeat all - parameter volLevel: player volume level - parameter muteStatus: player mute status - parameter shuffleStatus: player shuffle status - parameter mode: player mode single or repeat all

  #### Declaration

  Swift

      @objc optional func onControlStatus(_ volLevel: Int, muteStatus: Bool, mode: String)

  #### Parameters

  `volLevel` | player volume level
  `muteStatus` | player mute status
  `shuffleStatus` | player shuffle status
  `mode` | player mode single or repeat all

- `onVolumeChange(_:)`

  event occurs on player volume change.

  #### Declaration

  Swift

      @objc optional func onVolumeChange(_ volLevel: Int)

  #### Parameters

  `volLevel` | player volume to be set.

- `onAddToList(_:)`

  event occurs on video addition in TV queue(player list).

  #### Declaration

  Swift

      @objc optional func onAddToList(_ enqueuedItem: [String: AnyObject])

  #### Parameters

  `enqueuedItem` | enqueued video item.

- `onRemoveFromList(_:)`

  event occurs on video remove from TV queue(player list).

  #### Declaration

  Swift

      @objc optional func onRemoveFromList(_ dequeuedItem: [String: AnyObject])

  #### Parameters

  `dequeuedItem` | dequeued video Item.

- `onClearList()`

  event occurs on TV queue(player list) deletion.

  #### Declaration

  Swift

      @objc optional func onClearList()

- `onGetList(_:)`

  event occurs when player list(TV queue) is recieved.

  #### Declaration

  Swift

      @objc optional func onGetList(_ queueList: [String: AnyObject])

  #### Parameters

  `queueList` | play list of TV

- `onRepeat(_:)`

  event occurs on player list repeat.

  #### Declaration

  Swift

      @objc optional func onRepeat(_ mode: String)

  #### Parameters

  `mode` | specify repeat all/repeat single audio

- `onCurrentPlaying(_:)`

  occurs when new audio is shared with TV.

  #### Declaration

  Swift

      @objc optional func onCurrentPlaying(_ currentItem: [String: AnyObject])

  #### Parameters

  `currentItem` | current shared item.

- `onApplicationSuspend()`

  occurs when TV Application/widget goes into background.

  #### Declaration

  Swift

      @objc optional func onApplicationSuspend()

- `onApplicationResume()`

  occurs when TV Application/widget comes in foreground.

  #### Declaration

  Swift

      @objc optional func onApplicationResume()

- `onError(_:)`

  occurs when error is occured in playing Audio

  #### Declaration

  Swift

      @objc optional func onError(_ error: NSError)

  #### Parameters

  `error` | eror details