Документация Flussonic Watcher

Contents

Описание API Flussonic Watcher SDK для iOS

В этом разделе представлено описание Mobile Watcher API для iOS.

Классы

Перечисления

Протоколы

Class FlussonicWatcherView

public class FlussonicWatcherView : UIView, FlussonicWatcher, NibLoadable, FlussonicPlayerAdapterDelegate, TimelineToPlayerDelegate

Представляет собой одно представление камеры в виде плеера и элементов управления в нём.

Представление камеры будет пытаться занять все доступное пространство экрана.

Может поддерживать до четырех одновременных экземпляров из-за аппаратных ограничений (информация требует проверки).

delegate: FlussonicWatcherDelegateProtocol?

weak public var delegate: FlussonicWatcherDelegateProtocol?

Делегат будет получать уведомления о событиях плеера.

alertDelegate: UIViewController?

weak public var alertDelegate: UIViewController?

Делегат будет использован для представления важных уведомлений (alert views).

downloadRequestListener: FlussonicDownloadRequestListener?

weak public var downloadRequestListener: FlussonicDownloadRequestListener?

Делегат будет получать уведомления о событиях запросов на загрузку видео.

bufferingListener: FlussonicBufferingListener?

weak public var bufferingListener: FlussonicBufferingListener?

Делегат будет получать уведомления о событиях буферизации.

updateProgressEventListener: FlussonicUpdateProgressEventListener?

weak public var updateProgressEventListener: FlussonicUpdateProgressEventListener?

Делегат будет получать уведомления о событиях, касающихся процесса получения и установки обновлений.

allowDownload: Bool

public var allowDownload: Bool { get set }

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

startPositionDate: Date?

public var startPositionDate: Date?

Если значение startPositionDate инициализировано, экземпляр попытается начать играть с этой позиции, если возможно.

Init

configure(withUrl url: URL, playerAdapter adapter: FlussonicPlayerAdapterProtocol)

public func configure(withUrl url: URL, playerAdapter adapter: FlussonicPlayerAdapterProtocol)

Настраивает представление с URL.

  • url: URL as http[s]://access_token@host.com/camera_name[?from=1545660274]

mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

public func mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

Не задокументировано.

FlussonicPlayerView protocol

setAllowDownload(allowDownload: Bool)

public func setAllowDownload(allowDownload: Bool)

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

  • allowDownload: новое значение.

public func setStartPosition(dateTimeInSecs: Int64)

public func setStartPosition(dateTimeInSecs: Int64)

Устанавливает начальную позицию (время), с которой будет начато проигрывание видео.

Экземпляр FlussonicWatcherView попытается начать проигрывание видео с этой позиции, если возможно.

  • dateTimeInSecs: начальная позиция для проигрывания видео, в Unix timestamp.

pause()

public func pause()

Ставит проигрываемый видеопоток на паузу.

resume()

public func resume()

Возобновляет проигрывание текущего видеопотока. Прямая трансляция возобновится в режиме проигрывания прямого эфира, архив возобновит воспроизведение с текущей позиции в режиме проигрывания архива.

seek(seconds: TimeInterval)

public func seek(seconds: TimeInterval)

Проигрывает видео начиная с указанной позиции.

  • seconds: позиция, на которую необходимо перейти и с которой начать проигрывание, Unixtime.

screenshotCaptured: (UIImage) -> ()

public var screenshotCaptured: (UIImage) -> ()

Этот блок вызывается при создании скриншота видеопотока.

captureScreenshot(destUrl: URL)

public func captureScreenshot(destUrl: URL)

Создает скриншот видеопотока, который проигрывается в данный момент времени.

  • destUrl: URL-адрес для сохранения изображения скриншота.

setBufferingListener(bufferingListener: FlussonicBufferingListener?)

public func setBufferingListener(bufferingListener: FlussonicBufferingListener?)

Установка слушателя на события буферизации.

  • bufferingListener: экземпляр, которому следует передавать уведомления о событиях.

setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

public func setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

Установка слушателя на события запросов на загрузку видео.

  • downloadRequestListener: экземпляр, которому следует передавать уведомления о событиях.

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

Установка слушателя на события, касающиеся процесса получения и установки обновлений.

  • updateProgressEventListener: экземпляр, которому следует передавать уведомления о событиях.

getCurrentUtcInSeconds() -> Int64

public func getCurrentUtcInSeconds() -> Int64

Текущая позиция, на которой плеер воспроизводит видео.

getPlaybackStatus() -> Int

public func getPlaybackStatus() -> Int

Текущий статус проигрывания.

getSpeed() -> CGFloat

public func getSpeed() -> CGFloat

Текущая скорость проигрывания.

getAvailableStreams() -> Array

public func getAvailableStreams() -> Array<StreamItem>

Возвращает информацию о треках в доступных мультибитрейтных потоках.

getCurrentStream() -> StreamItem?

public func getCurrentStream() -> StreamItem?

Возвращает информацию о треках текущего (проигрываемого) мультибитрейтного потока.

setNetworkQualityThresholdCount(count: Int)

public func setNetworkQualityThresholdCount(count: Int)

Количество прерываний плеера из-за плохого сетевого соединения, необходимое для автоматического переключения на видеопоток с низким битрейтом.

  • count: Максимальное число прерываний работы плеера

setShowDebugInfo(newValue: Bool)

public func setShowDebugInfo(newValue: Bool)

Показывает либо скрывает отладочную информацию в правом верхнем углу окна плеера.

  • newValue: новое значение

Class PreviewMp4View

public class PreviewMp4View : UIView, NibLoadable

Загружает один кадр и показывает декодированное изображение как превью потока в плеере.

Загруженные изображения будут кэшироваться с использованием URL в качестве ключа.

В случае ошибки показывает изображение сломанной камеры.

statusListener: PreviewMp4ViewStatusListener?

public weak var statusListener: PreviewMp4ViewStatusListener?

Слушатель получит уведомление при смене статуса превью

status: PreviewMp4StatusEnum { get set }

public private(set) var status: PreviewMp4StatusEnum { get set }

Текущий статус превью видео с камеры.

init(frame: CGRect)

public override init(frame: CGRect)

Не задокументировано.

init?(coder: NSCoder)

public required init?(coder: NSCoder)

Не задокументировано.

configure(withUrl url: URL, cacheKey: String?)

public func configure(withUrl url: URL, cacheKey: String?)

Настройка представления с URL.

Загрузка изображения начнется сразу, и успешно загруженное изображение будет помещено в кэш с использованием URL в качестве ключа.

  • url: либо URL содержащий сессию пользователя:

    (protocol)://(session)@(server):(port)/(camera_name)/preview.mp4

    либо URL содержащий токен камеры: (protocol)://(server):(port)/(camera_name)/preview.mp4?token=(camera_token)

reset()

public func reset()

Сбрасывает состояние представления при его переиспользовании.

Используется в UITableViewController, где при прокрутке старые представления переиспользуются для отображения новых картинок.

Метод reset() отменяет загрузку преью-картинки (если она еще не загружена) и сбрасывает состояние представления.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

cleanCache()

public func cleanCache()

Удаляет все превью из кэша.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

cleanCache(for cacheKey: String)

public func cleanCache(for cacheKey: String)

Clears the cache of URL previews.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

layoutSubviews()

override public func layoutSubviews()

Не задокументировано.

Class ProgressEvent

public class ProgressEvent : NSObject

Класс используется для уведомления делегата о событиях, касающихся процесса получения и установки обновлений.

currentUtcInSeconds: Double

public private(set) var currentUtcInSeconds: Double

Текущее время UTC в секундах.

playbackStatus: UniversalStatus

public private(set) var playbackStatus: UniversalStatus

Текущий статус проигрывания.

playbackStatusString: String

public private(set) var playbackStatusString: String

Описание текущего статуса проигрывания.

speed: Double

public private(set) var speed: Double

Текущая скорость проигрывания.

Class DateTimeViewController

public class DateTimeViewController : UIViewController

Класс предоставляет способ определения даты и времени. DateTimeViewController — это календарь, который позволяет выбрать дату и время начала воспроизведения DVR архива.

startDate: Date

public var startDate: Date

Дата начала интервала видео для проигрывания.

Если дата начала находится в будущем, она будет уменьшена до текущей даты и времени.

onCompletion: ((Date?) -> Void)

public var onCompletion: ((Date?) -> Void)

Блок будет вызван при освобождении контроллера.

  • Возвращаемое значение: дата или ноль, если отменено.

instance() -> DateTimeViewController?

public static func instance() -> DateTimeViewController?

Функция загружает контроллер из внутренней storyboard.

  • Возвращаемое значение: экземпляр контроллера или nil если контроллер не удалось загрузить.

Enumeration UniversalStatus

public enum UniversalStatus : Int

Состояние плеера.

ERROR

case ERROR = 0

IDLE

case IDLE

PREPARING

case PREPARING

PLAYING

case PLAYING

PAUSED

case PAUSED

PLAYBACK_COMPLETED

case PLAYBACK_COMPLETED

Enumeration PreviewMp4StatusEnum

public enum PreviewMp4StatusEnum : Int8

Состояние загрузки изображения предварительного просмотра.

noUrl

case noUrl = 0

Изображение предварительного просмотра не указано.

loading

case loading

Изображение предварительного просмотра загружается.

loaded

case loaded

Изображение предварительного просмотра было успешно загружено.

loadedFromCache

case loadedFromCache

Не задокументировано.

error

case error

Ошибка, загрузка прервана.

Protocol FlussonicBufferingListener

public protocol FlussonicBufferingListener

Протокол определяет публичные методыFlussonicBufferingListener.

Используется для уведомления делегата о событиях буферизации.

onBufferingStart()

func onBufferingStart()

Вызывается при появлении метки буферизации.

onBufferingStop()

func onBufferingStop()

Вызывается при скрытии метки буферизации.

Protocol FlussonicDownloadRequestListener

public protocol FlussonicDownloadRequestListener : AnyObject

Протокол определяет публичные методы FlussonicDownloadRequestListener.

Используется для уведомления делегата о событиях запросов на загрузку видео.

onDownloadRequest(from: Int64, to: Int64)

func onDownloadRequest(from: Int64, to: Int64)

Вызывается при касании иконки с дискетой для сохранения выбранного куска архива.

Замечание: Этот SDK не содержит функциональность для загрузки части архива.

  • from: начало интервала в секундах, Unix time
  • to: околнчание интервала в секундах, Unix time

Protocol FlussonicUpdateProgressEventListener

public protocol FlussonicUpdateProgressEventListener

Протокол определяет публичные методы FlussonicUpdateProgressEventListener.

Используется для уведомления делегата о событиях, касающихся процесса получения и установки обновлений.

onUpdateProgress(event: ProgressEvent)

func onUpdateProgress(event: ProgressEvent)

Вызывается при событиях прогресса обновлений.

Protocol FlussonicWatcher

public protocol FlussonicWatcher : AnyObject

Протокол определяет публичные методы FlussonicWatcherView.

Используется для передачи делегату уведомления о событиях плеера.

setAllowDownload(allowDownload: Bool)

func setAllowDownload(allowDownload: Bool)

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

  • allowDownload: новое значение.

setStartPosition(dateTimeInSecs: Int64)

func setStartPosition(dateTimeInSecs: Int64)

Устанавливает начальную позицию (время), с которой будет начато проигрывание видео.

Экземпляр FlussonicWatcherView попытается начать проигрывание видео с этой позиции, если возможно.

  • dateTimeInSecs: начальная позиция для проигрывания видео, в Unix timestamp.

pause()

func pause()

Ставит проигрываемый видеопоток на паузу.

resume()

func resume()

Возобновляет проигрывание текущего видеопотока. Прямая трансляция возобновится в режиме проигрывания прямого эфира, архив возобновит воспроизведение с текущей позиции в режиме проигрывания архива.

seek(seconds: TimeInterval)

public func seek(seconds: TimeInterval)

Проигрывает видео начиная с указанной позиции.

  • seconds: позиция, на которую необходимо перейти и с которой начать проигрывание, Unixtime.

screenshotCaptured: (UIImage) -> ()

public var screenshotCaptured: (UIImage) -> ()

Этот блок вызывается при создании скриншота видеопотока.

captureScreenshot(destUrl: URL)

public func captureScreenshot(destUrl: URL)

Создает скриншот видеопотока, который проигрывается в данный момент времени.

  • destUrl: UURL-адрес для сохранения изображения скриншота.

setBufferingListener(bufferingListener: FlussonicBufferingListener?)

public func setBufferingListener(bufferingListener: FlussonicBufferingListener?)

Установка слушателя на события буферизации.

  • bufferingListener: экземпляр, которому следует передавать уведомления о событиях.

setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

public func setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

Установка слушателя на события запросов на загрузку видео.

  • downloadRequestListener: экземпляр, которому следует передавать уведомления о событиях.

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

Установка слушателя на события, касающиеся процесса получения и установки обновлений.

  • updateProgressEventListener: экземпляр, которому следует передавать уведомления о событиях.

getCurrentUtcInSeconds() -> Int64

public func getCurrentUtcInSeconds() -> Int64

Текущая позиция, на которой плеер воспроизводит видео.

getPlaybackStatus() -> Int

public func getPlaybackStatus() -> Int

Текущий статус проигрывания.

getSpeed() -> CGFloat

public func getSpeed() -> CGFloat

Текущая скорость проигрывания.

getAvailableStreams() -> Array

public func getAvailableStreams() -> Array<StreamItem>

Возвращает информацию о треках в доступных мультибитрейтных потоках.

getCurrentStream() -> StreamItem?

public func getCurrentStream() -> StreamItem?

Возвращает информацию о треках текущего (проигрываемого) мультибитрейтного потока.

setNetworkQualityThresholdCount(count: Int)

public func setNetworkQualityThresholdCount(count: Int)

Количество прерываний плеера из-за плохого сетевого соединения, необходимое для автоматического переключения на видеопоток с низким битрейтом.

  • count: Максимальное число прерываний работы плеера

setShowDebugInfo(newValue: Bool)

public func setShowDebugInfo(newValue: Bool)

Показывает либо скрывает отладочную информацию в правом верхнем углу окна плеера.

  • newValue: новое значение

Protocol FlussonicWatcherDelegateProtocol

public protocol FlussonicWatcherDelegateProtocol : AnyObject

Протокол определяет публичные методыFlussonicWatcherDelegateProtocol.

Используется для передачи делегату уведомления о событиях развертывания и свертывания панели инструментов.

expandToolbar()

func expandToolbar()

Вызывается плеером, когда началось разворачивание нижней панели инструментов.

collapseToolbar()

func collapseToolbar()

Вызывается плеером, когда началось сворачивание нижней панели инструментов.

showToolbar()

func showToolbar()

Вызывается плеером, когда нижняя панель инструментов появилась без анимации.

hideToolbar()

func hideToolbar()

Вызывается плеером, когда нижняя панель инструментов скрылась без анимации.

Protocol PreviewMp4ViewStatusListener

public protocol PreviewMp4ViewStatusListener : AnyObject

Протокол определяет публичные методы PreviewMp4ViewStatusListener.

Используется для передачи делегату уведомления о событиях изменения статуса PreviewMp4View.

onStatusChanged(_ status: Int8, _ code: String, _ message: String)

func onStatusChanged(_ status: Int8, _ code: String, _ message: String)

Эта функция вызывается при изменении состояния превью.

  • status: новый статус
  • code: код ошибки или 0 в случае отсутствия ошибки
  • message: сообщение об ошибке или "" в случае отсутствия ошибки.