DorisPlayerEvent

public enum DorisPlayerEvent
extension DorisPlayerEvent: AnalyticsEventProtocol

Available events tant can be sent by DorisPlayerOutputProtocol.onPlayerEvent(...)

  • indicates current player item changed

    Declaration

    Swift

    case didCurrentItemChange(old: AVPlayerItem?, new: AVPlayerItem?)
  • indicates current player item failed

    Declaration

    Swift

    case playerItemFailed(logs: [String : Any]?, error: DorisPlayerError?)
  • indicates playback stalled

    Declaration

    Swift

    case playbackStalled
  • raw AVPlayer.TimeControlStatus state changed event, do not rely on it in terms of player state (playing/paused), rely on DorisPlayerOutputProtocol.onPlayerStateChanged() delegate method instead

    Declaration

    Swift

    case didTimeControlStatusChange(status: AVPlayer.TimeControlStatus)
  • indicated player.load(resolvable:) called

    Declaration

    Swift

    case loadInitiated
  • stream is going to be loaded with delay

    Declaration

    Swift

    case willLoadAfterDelay(delay: Double, initialSeek: SeekType?)
  • stream is going to be loaded now

    Declaration

    Swift

    case willLoadNow(initialSeek: SeekType?)
  • Player did resolve playback source metadata from api requests

    Declaration

    Swift

    case metadataChanged(metadata: DorisSourceMetadata)
  • AVPlayer will perform seek

    Declaration

    Swift

    case willSeek(info: AVPlayer.SeekStartedInfo)
  • AVPlayer did perform seek

    Declaration

    Swift

    case didSeek(info: AVPlayer.SeekEndedInfo)
  • stream ended

    Declaration

    Swift

    case finishedPlaying(endTime: Double)
  • stream current progress time has changed, where time is playback position in seconds, date will be nil for vods, and will represent current progress as Date for Lives if possible

    Declaration

    Swift

    case currentTimeChanged(contentPosition: Double, streamPosition: Double, date: Date?)
  • stream duration has changed

    Declaration

    Swift

    case itemDurationChanged(contentDuration: Double, streamDuration: Double)
  • stream type recognized

    Declaration

    Swift

    case streamTypeRecognized(streamType: StreamType)
  • DVR window (seekabke range) has changed

    Declaration

    Swift

    case seekableTimeRangesChanged(contentSeekableRanges: (start: Double, end: Double), streamSeekableRanges: (start: Double, end: Double))
  • Buffered range

    Declaration

    Swift

    case loadedTimeRangesChanged(contentLoadedRanges: (start: Double, end: Double), streamLoadedRanges: (start: Double, end: Double))
  • available subtitles and audiotracks

    Declaration

    Swift

    case queueItemsChanged(items: [QueueItem])
  • indicates that AVPlayerItem status changes to readyToPlay and initial seek was completed if provided

    Declaration

    Swift

    case availableMediaTracksChanged(tracks: [MediaTrack])
  • audiosession routes changing event (airplay, headphones, builtInSpeaker, etc..)

    Declaration

    Swift

    case playbackReceiverChanged(old: DorisPlaybackReceiver, new: DorisPlaybackReceiver)
  • dictionary representation of AVPlayerItemAccessLog, updates every second

    Declaration

    Swift

    case playbackLogsUpdated(logs: [String : Any])
  • indicates that AVPlayerItem status changes to readyToPlay and initial seek was completed if provided

    Declaration

    Swift

    case readyToPlay
  • indicates that player will transition to picture in picture (Custom UI only)

    Declaration

    Swift

    case pipWillStart
  • indicates that player will transition back to app from picture in picture (Custom UI only)

    Declaration

    Swift

    case pipDidStop
  • indicates that player’s selected subtitle or audio was changed

    Declaration

    Swift

    case trackChanged(track: MediaTrack, autoSet: Bool)
  • indicates that smart subtitle preferences were changed by user

    Declaration

    Swift

    case subtitlePreferenceChanged(mappings: [SmartSubtitleMapping])
  • video presentation size changed

    Declaration

    Swift

    case presentationSizeChanged(size: CGSize)
  • playback bitrate or bandwidth policy changed event

    Declaration

    Swift

    case bitrateChanged(bitrate: Double, policy: BandwidthPolicy)
  • volume changed

    Declaration

    Swift

    case volumeChanged(volume: Float)
  • player.unload was called

    Declaration

    Swift

    case didUnload