VMSPlayerController
Использует pusher-websocket-swift версии 10.0.1 с некоторыми исправлениями для целей VMSMobileSDK.
https://github.com/pusher/pusher-websocket-swift/tree/master
Инициализация
static func initialization(viewModel: VMSPlayerViewModel, delegate: VMSPlayerDelegate?) -> VMSPlayerController
VMSPlayerViewModel
init(
camera: VMSCamera,
groupCameras: [VMSCamera]?,
user: VMSUser,
translations: VMSPlayerTranslations,
playerApi: VMSPlayerApi,
options: VMSPlayerOptions
)
camera
— камера, которую нужно открыть в плеере
groupCameras
— если установить этот параметр, можно провести пальцем по плееру, чтобы изменить камеру, воспроизводимую в плеере
user
— текущий пользователь
translations
— словарь переводов, необходимых внутри плеера. Вы можете создать его на основе того, что вы получаете с сервера. Подробности см. в StaticApi
playerApi
— объект VSMobileSDK
или пользовательский объект, реализующий CameraApi
, PlayerApi
и CameraEventsApi
options
— пользовательские параметры, которые можно установить для плеера
VMSPlayerOptions
init(
language: VMSLanguage?,
allowVibration: Bool?,
allowSoundOnStart: Bool?l,
markTypes: [VMSEventType],
videoRates: [VMSVideoRates]?
)
language
— язык, по умолчанию: английский
allowVibration
— установите значение no
, если вы не хотите, чтобы устройство вибрировало при выборе некоторых настроек. По умолчанию: yes
allowSoundOnStart
— указывает, разрешено ли проигрывателю включать звук, если в камере есть звук сразу после загрузки проигрывателя. По умолчанию true
markTypes
— массив доступных типов меток. См. StaticsApi
для получения дополнительной информации
videoRates
— массив доступных скоростей воспроизведения видео у плеера. См. StaticsApi
для получения дополнительной информации
VMSOpenPlayerOptions
Дополнительно вы можете установить параметры открытия, если вам нужно открыть плеер в определенных условиях.
init(
event: VMSEvent?,
archiveDate: Date?,
showEventEdit: Bool,
popNavigationAfterEventEdit: Bool,
pushEventsListAfterEventEdit: Bool,
openArchive: Bool
)
event
— событие, которое нужно отобразить/редактировать в плеере. Параметру isEventArchive
будет присвоено значение true
автоматически
archiveDate
— установите дату, если вам нужно открыть архив в определенную дату
showEventEdit
— установите для этого параметра значение true
, если вы хотите открыть экран редактирования событий. event
также должно быть установлено
popNavigationAfterEventEdit
— установите для этого параметра значение true
, если вы хотите, чтобы плеер контроллер выскакивал после сохранения или отмены редактирования события
pushEventsListAfterEventEdit
— установите для этого параметра значение true
, если вы хотите отображать экран списка событий после сохранения или отмены редактирования события
openArchive
— установите для этого параметра значение true
, если вы хотите открыть архив в плеер контроллере
VMSPlayerDelegate
VMSPlayerController использует VMSPlayerDelegate
playerDidAppear()
— вызывается, когда плеер загружается и появляется на экране
gotoEventsList(camera: VMSCamera)
— вызывается при нажатии кнопки «Список событий»
soundChanged(isOn: Bool)
— вызывается при нажатии кнопки «отключить/включить звук»
screenshotCreated(image: UIImage, cameraName: String, date: Date)
— вызывается, когда снимок экрана сделан из текущего кадра
logPlayerEvent(event: String)
— если вы хотите записывать активность пользователя, этот метод предоставляет названия действий для передачи в ваше приложение
playerDidReceiveError(message: String)
— показать ошибку плеера
playerDidReceiveInfo(message: String)
— показать информацию о плеере
dismissPlayerErrors()
— если вы показываете представления ошибок, имеющие время действия, отклоните их
Обновление плеера
Плеер отвечает на эти имена уведомлений, чтобы обрабатывать их и соответствующим образом обновляться.
extension Notification.Name {
static let noConnectionError
static let updateUserPermissions
static let updateUserCameras
static let updateMarks
static let updateMark
}
noConnectionError
— опубликовать это уведомление в случае отсутствия соединения. Плеер прекратит воспроизведение
updateUserPermissions
— в случае изменения прав пользователя необходимо обновить плеер
updateUserCameras
— если вы получили сокет cameraUpdate
и текущая камера была удалена из учетной записи пользователя, плеер будет закрыт должным образом. Это предпочтительный способ закрытия плеера
updateMarks
— если вы получили сокет markCreated
или markDeleted
, используйте это уведомление для обновления плеера
updateMark
— если вы получили сокет markUpdated
, используйте это уведомление для обновления плеера