TimeShiftAPI v3

Использование возможностей Timeshift

Для использования функций TimeShift необходимо:

1. Установить директорию, в которой будут храниться временные файлы с помощью функции SetTimeShiftFolder. Этот пункт является необходимым для запуска таймшифт.

Достаточно это сделать один раз после старта.

2. Если необходимо, изменить максимальную длительность таймшифта с помощью функции SetTimeShiftDurationMax. Значение по умолчанию 7200 секунд.

3. Запустить воспроизведение с солюшеном extTimeShift.

Все действия с таймшифтом осуществляются через глобальный объект TimeShift

Команда Stop или запуск другого контента на воспроизведение автоматически освобождает буфер таймшифта.

События

При воспроизведении с помощью солюшена extTimeShift может приходить событие с кодом 0x24. При этом в функцию stbEvent.onEvent передается два параметра: код события и дополнительная строка json следующего вида:

{"event_code":1,"ident":"TimeShift","event_data":""}

В данном случае event_code может принимать следующие значения:

event_code	Описание
1	запуск воспроизведения
2	остановка воспроизведения
3	SetSlidingMode(1), когда воспроизведение находилось в режиме таймшифта на паузе и текущая позиция отличается от реалтайм позиции более чем на длительность максимального буфера таймшифта. Если в режиме паузы и пришло событие 3, то необходимо послать Continue
4	При заполнении буфера таймшифта. После прихода этого события в режиме SetSlidingMode(0) новые данные теряются и навигация возможна только в буфере либо переход в режим реалтайтма (сохранение с докачкой невозможно). Приход события 4 при SetSlidingMode(1) означает что буфер таймшифта заполнился и начали теряться наиболее старые данные контента
5	Приходит за 1 минуту до того как заполниться буфер таймшифта (за минуту до события 4 )
6	Приходит в процессе воспроизведения если носитель недоступен (event_data=1) либо на носителе недостаточно места (event_data=2). После прихода этого события воспроизведение автоматически переходит в реалтайм

Методы объекта TimeShift

TimeShift.SetTimeShiftFolder

void SetTimeShiftFolder(string folderPath)

Устанавливает рабочую директорию для модуля TimeShift. В этой директории будут храниться рабочие и вспомогательные файлы.

Параметры:

Параметры	Допустимые значения	Описание
folderPath	Путь для размещения файлов таймшифта

Возвращаемое значение:

Нет.

TimeShift. SetMaxDuration

void SetMaxDuration (int duration)

Устанавливает максимальную длительность буфера таймшифта.

Параметры:

Параметры	Допустимые значения	Описание
duration	Максимальная длительность в секундах

Возвращаемое значение:

Нет.

TimeShift.EnterTimeShift

void EnterTimeShift()

Переключиться в режим таймшифта. При этом станут доступны команды паузы и позиционирования по текущему буферу.

Параметры: Нет.

Возвращаемое значение:

Параметры	Допустимые значения	Описание
error	int	0 – операция завершена успешно Иначе – ошибка.

Замечание: Работает, только если воспроизведение запущено с солюшеном extTimeShift.

TimeShift.ExitTimeShift

void ExitTimeShift()

Выйти из режима таймшифта и переключиться в режим реалтайм. При этом буфер таймшифта не сохраняется.

Параметры:

Нет.

Возвращаемое значение:

Параметры	Допустимые значения	Описание
error	int	0 – операция завершена успешно Иначе – ошибка.

Замечание:

Работает, только если воспроизведение запущено с солюшеном extTimeShift.

TimeShift.ExitTimeShiftAndSave

void ExitTimeShiftAndSave(string name)

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

Параметры:

Параметры	Допустимые значения	Описание
name	Имя поддиректории, в которой будут сохранены все данные текущего таймшифта

Возвращаемое значение:

Параметры	Допустимые значения	Описание
error	int	0 – операция завершена успешно Иначе – ошибка.

TimeShift. ExitTimeShiftAndSaveDuration

void ExitTimeShiftAndSaveDuration(string name, int duration)

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

Параметры:

Параметры	Допустимые значения	Описание
name	Имя поддиректории, в которой будут сохранены все данные текущего таймшифта.
duration	>= 0	Время в секундах, в течении которого ещё необходимо сохранять поток.

Возвращаемое значение:

Параметры	Допустимые значения	Описание
error	int	0 – операция завершена успешно Иначе – ошибка.

TimeShift. SetSlidingMode

void SetSlidingMode(bool OnOff);

Параметры:

Параметры	Допустимые значения	Описание
On/off	Если устанавливаем «TRUE», то буффер таймшифта по достижении своего придела начинает терять наиболее старые данные. Если устанавливаем «FALSE», то буффер таймшифта по достижении своего придела начинает терять наиболее новые данные

Возвращаемое значение:

нет