1

Тема: Скрипт формирования названия медиа-ресурса

тема перенесена

Sony Bravia KDL-32CX523

2

Re: Скрипт формирования названия медиа-ресурса

Не нашел, где задать вопрос, задаю тут.
В настройках устройства есть такой пункт - "Скрипт формирования названия медиа-ресурса". Так вот, может где-нибудь есть примеры данного скрипта ? Я уже пытался сам прикрутить что-то, но в итоге ничего не вышло  :(

LG 32LA615V

3

Re: Скрипт формирования названия медиа-ресурса

nikolay пишет:

В настройках устройства есть такой пункт - "Скрипт формирования названия медиа-ресурса". Так вот, может где-нибудь есть примеры данного скрипта ? Я уже пытался сам прикрутить что-то, но в итоге ничего не вышло  :(

До этого не пробовал, но, кажется разобрался немного.
Заходим в Настройки -> Обработка, добавляем скрипт.
Обзываем его как-нибудь, например "Формирование названия".
И в открытой справа панели, среди переменных, в группе "Основные" увидел переменную с названием ProcessMediaResult. И заподозрил я её: не то ли она, что нам нужно? Оказалось то.
Например, сделал такой скрипт (язык C++Script):

{
  if (Trim(CurrentMediaItem[mpiLastPlaybackTime])!='') 
    ProcessMediaResult = '[П] '+CurrentMediaItem[mpiTitle];
  else 
    ProcessMediaResult = CurrentMediaItem[mpiTitle];
}

Потом в настройках устройства в "Скрипт формирования названия медиа-ресурса" выбрать именно эту обработку.

Не сразу разобрался, но изменения вступают в силу только при перезапуске сервера и результаты видны только на экране телевизора при навигации по папкам. А в Web навигации и самой программе изменений никаких.


Этот скрипт будет помечать (ставить букву П - "просмотренные" в квадратных скобках перед названием) те видео, которые включались. Например, в сериалах видеть серии, которые уже были просмотрены.

Sony Bravia KDL-32CX523
Спасибо сказали: nikolay1

4 (2015.06.25 11:13:28 отредактировано nikolay)

Re: Скрипт формирования названия медиа-ресурса

Спасибо большое, пока написал такой скрипт, вдруг кому понадобится  :)

string strPrefix = "";
{
  if (CurrentMediaItem != NULL && !CurrentMediaItem.Properties[mpiInternetItem])
  {
    if (VarToStr(CurrentMediaItem[mpiLastPlaybackTime]) != "") 
      strPrefix += "[П]";
      
    if (CurrentMediaItem.Properties[mpi3DVideoType] > 0)
      strPrefix += "[3D]";
  }
  ProcessMediaResult = strPrefix + CurrentMediaItem.Properties[mpiTitle];
}

Но есть еще 1 вопрос: почему следующий код

CurrentMediaItem.MediaType == mtVideo

не работает, говорит о неприводимых типах ?

LG 32LA615V

5

Re: Скрипт формирования названия медиа-ресурса

nikolay пишет:

Но есть еще 1 вопрос: почему следующий код

CurrentMediaItem.MediaType == mtVideo

не работает, говорит о неприводимых типах ?

Ээ... ну почему же, вроде работает и не ругается. Хотя в реальной работе на телеке не проверял ещё.
Кстати, переменные объектов, типа CurrentMediaItem при неустановленных значениях содержат значения не NULL, а, как оказалось, паскалевкий Nil.
Поэтому проверка должна быть такой:

if (CurrentMediaItem != nil && !CurrentMediaItem.Properties[mpiInternetItem])

Можно удостовериться при редактировании обработки, прям начать отладку и CurrentMediaItem не будет содержать текущий элемент.

И к вам вопрос: что значит CurrentMediaItem.Properties[mpiInternetItem]? Что именно означает этот флаг mpiInternetItem? А то у меня только догадки.

Sony Bravia KDL-32CX523

6 (2015.06.25 12:42:40 отредактировано nikolay)

Re: Скрипт формирования названия медиа-ресурса

WendyH пишет:

И к вам вопрос: что значит CurrentMediaItem.Properties[mpiInternetItem]? Что именно означает этот флаг mpiInternetItem? А то у меня только догадки.

Является ли этот ресурс интернетным  :D  . True у интернет-телевидения(проверено) и у подкастов(не проверял).

И почему-то nil=0, а NULL - пустое значение, хотя должно быть наоборот.

WendyH пишет:
nikolay пишет:

Но есть еще 1 вопрос: почему следующий код

CurrentMediaItem.MediaType == mtVideo

не работает, говорит о неприводимых типах ?

Ээ... ну почему же, вроде работает и не ругается. Хотя в реальной работе на телеке не проверял ещё.

Хм, совсем странная система:

if (CurrentMediaItem != nil && CurrentMediaItem.MediaType == mtVideo && !CurrentMediaItem.Properties[mpiInternetItem])

не работает, хотя

if (CurrentMediaItem != nil && (CurrentMediaItem.MediaType == mtVideo) && !CurrentMediaItem.Properties[mpiInternetItem])

вполне работает.

LG 32LA615V

7

Re: Скрипт формирования названия медиа-ресурса

А куда его вставлять скрипт?

8

Re: Скрипт формирования названия медиа-ресурса

Вот итоговый скрипт. Если разобраться, то переделать как-то под себя - не проблема:

// By nikolay
string strPrefix = "";
{
  // Проверяем, выводится ли сейчас текущий элемент и не является ли он Интернет-ресурсом (Интернет-телевидение, Интернет-радио)
  if (CurrentMediaItem != nil && !CurrentMediaItem.Properties[mpiInternetItem])
  {
    // Если в параметрах элемента есть данные о последнем времени проигрывания
    if (VarToStr(CurrentMediaItem[mpiLastPlaybackTime]) != "") 
      strPrefix += "[П] "; // то ставим пометку, что ресурс уже просматривался
      
    // Если в параметрах элемента указано, что видео имеет формат 3D
    if (CurrentMediaItem.Properties[mpi3DVideoType] > 0)
      strPrefix += "[3D] "; // то добавляем пометку, что формат 3D
  }
  // Результат сформированного имени для медиа-плеера заносится в ProcessMediaResult
  ProcessMediaResult = strPrefix + CurrentMediaItem.Properties[mpiTitle]; // Префикс + реальное имя из параметров
}
+ Или можно загрузить прикреплённый файл

https://hms.lostcut.net/img/help/obrabotki.png

На той-же картинке выше видно, куда можно добавить скрипт вручную - нажать "Добавить" и задать имя, выбрать язык скрипта "C++Script" и вставить код скрипта.

+ Загруженная или добавленная обработка выбирается здесь

https://hms.lostcut.net/img/help/script_format_title.png

Прикреплённые файлы сообщения

Пометка имён просмотренных ресурсов и 3D.cfg 2.93 kb, скачивалось 317 раз, начиная с 2015.11.09

Sony Bravia KDL-32CX523
Спасибо сказали: rebuse, UksusoFF2

9 (2019.05.21 16:34:21 отредактировано UksusoFF)

Re: Скрипт формирования названия медиа-ресурса

Подскажите можно ли сделать чтобы отметка о просмотре добавлялась только если было просмотрено, например, больше 50% видео?