Что играет в плеере виде XML¶
- Table of contents
- Что играет в плеере виде XML
Доступно начиная с версии 2.15.102.7
Возможность реализована при помощи нескольких новых компонентов системы:
- Плагин ValueServer
- -Плагин PlayerInfoSource- - плагин устарел
- Экстендер_ValueXPlayer используется с 2.15.102.271 вместо PlayerInfoSource.
- Плагин ValueXMLWriter
Система работает следующим образом:
- Экстендер_ValueXPlayer считывает информацию с одного или нескольких Х-плееров и отправляет ее ValueServer, который ее сохраняет и предоставляет другим компонентам.
- ValueXMLWriter при каждом изменении состояния сохраняет информацию в файл и, в дополнение, может запустить при этом внешнее приложение
Особенностью системы является:
- независимое сохранение информации от разных плееров, можно настроить запись в разные файлы, с запуском разных приложений;
- возможность произвольной компоновки: все компоненты могут находится в составе разных рабочих мест, связанных сетью или в одном единственном;
- запись XML и запуск приложений можно настроить на отдельном месте, это не повлияет на работу эфирной машины;
- возможность централизованной настройки: при наличии нескольких эфирных машин достаточно одного экземпляра ValueXMLWriter, пишущего информацию о всех плеерах
- возможность сохранение нескольких файлов с информацией об одном плеере для разных задач
- полная информация - в файл сохраняется вся информация, аналогично сохранению расписания в XML. В том числе, сохраняютcя и добавленные пользователями атрибуты БД, в примере - тэг .
Структура XML файла:
<root>
<ELEM_0> <!-- Воспроизводимый или находящийся в очереди воспроизведения элемент -->
<Status>Playing</Status> <!-- Элемент воспроизводится -->
<Block> <!-- Блок расписание к которому относится элемент -->
<!-- Тэги описывающие блок -->
</Block>
<Elem> <!-- Элемент расписания -->
<!-- Тэги описывающие элемент -->
</Elem>
</ELEM_0>
<ELEM_1> <!-- Воспроизводимый или находящийся в очереди воспроизведения элемент -->
<Status>Loaded</Status> <!-- Элемент находится в очереди воспроизведения -->
<Block> <!-- Блок расписание к которому относится элемент -->
<!-- Тэги описывающие блок -->
</Block>
<Elem> <!-- Элемент расписания -->
<!-- Тэги описывающие элемент -->
</Elem>
</ELEM_1>
</root>
Поля описывающие блок и элемент расписания полностью соответствуют полям XML файла полученного при сохранении расписания в файл.
Описание полей можно посмотреть здесь: Сохранение_расписания_в_XML
Пример содержимого файла:
<code class="xml">
<root>
<ELEM_0>
<Status>Playing</Status>
<Block>
<BlockVersion dt="i4">9</BlockVersion>
<CurId dt="i4">20</CurId>
<FileName>816df519.blk</FileName>
<Flags dt="i4">32</Flags>
<ModifyDT dt="i8">129993617675302253</ModifyDT>
<NumberOfSbjAudioItems>0</NumberOfSbjAudioItems>
<NumberOfSubjects>0</NumberOfSubjects>
<PlaylistDateStr>Friday 07.12.12</PlaylistDateStr>
<RealBlockSize dt="i4">3484674</RealBlockSize>
<Size dt="i4">0</Size>
<Time dt="i4">0</Time>
<Type dt="i4">1073741824</Type>
<ValStorage>
<RetrChanSrc dt="s"/>
</ValStorage>
</Block>
<Elem>
<Cmd dt="i4">0</Cmd>
<DB_ModifyDT dt="i8">129993761266000000</DB_ModifyDT>
<Freq dt="i4">44100</Freq>
<ID dt="i4">18</ID>
<JnglBtn dt="i4">-1</JnglBtn>
<PhonoType dt="i4">4</PhonoType>
<PrimaryCat dt="i4">21</PrimaryCat>
<Runtime dt="i4">94955</Runtime>
<Size dt="i4">0</Size>
<SmplRealSize dt="i4">4187520</SmplRealSize>
<StartTime dt="i4">481096</StartTime>
<State dt="i4">2</State>
<FONO_INFO>
<FadeInType dt="i4">1</FadeInType>
<FadeOutType dt="i4">1</FadeOutType>
<FileName>d:\_git\digispot\current\exe.dbg\root\SND\Linkin Park – Jornada Del Muerto.mp3</FileName>
<Gain dt="f">0</Gain>
<MaxLvlOk dt="i4">0</MaxLvlOk>
<Type dt="i4">3</Type>
<VersionIsNull dt="i4">1</VersionIsNull>
<dbID dt="i4">50</dbID>
<FONO_ROTATOR_INFO/>
<FONO_STRING_INFO>
<Album>A Thousand Suns</Album>
<Artist>Linkin Park</Artist>
<Category>Category А</Category>
<Comment>LPRussia.com</Comment>
<CreateDT dt="i8">0</CreateDT>
<DbName>CurrentTest</DbName>
<ModifyDT dt="i8">129900017340000000</ModifyDT>
<Name>Jornada Del Muerto</Name>
<Year dt="i4">2010</Year>
</FONO_STRING_INFO>
</FONO_INFO>
<SUBJECT/>
<UserAttribs>
<ELEM>
<ID dt="i4">7</ID>
<Name>Сomposer</Name>
<Value>Famous composer</Value>
</ELEM>
<ELEM>
<ID dt="i4">8</ID>
<Name>Bandmaster</Name>
<Value>Famous bandmaster</Value>
</ELEM>
<ELEM>
<ID dt="i4">5</ID>
<Name>Vocal</Name>
<Value>Male</Value>
</ELEM>
</UserAttribs>
</Elem>
</ELEM_0>
<ELEM_1>
<Status>Loaded</Status>
<Block>
<BlockVersion dt="i4">9</BlockVersion>
<CurId dt="i4">20</CurId>
<FileName>816df519.blk</FileName>
<Flags dt="i4">32</Flags>
<ModifyDT dt="i8">129993617675302253</ModifyDT>
<NumberOfSbjAudioItems>0</NumberOfSbjAudioItems>
<NumberOfSubjects>0</NumberOfSubjects>
<PlaylistDateStr>Friday 07.12.12</PlaylistDateStr>
<RealBlockSize dt="i4">3484674</RealBlockSize>
<Size dt="i4">0</Size>
<Time dt="i4">0</Time>
<Type dt="i4">1073741824</Type>
<ValStorage>
<RetrChanSrc dt="s"/>
</ValStorage>
</Block>
<Elem>
<Cmd dt="i4">0</Cmd>
<DB_ModifyDT dt="i8">129993761559130000</DB_ModifyDT>
<Freq dt="i4">44100</Freq>
<ID dt="i4">19</ID>
<JnglBtn dt="i4">-1</JnglBtn>
<PhonoType dt="i4">4</PhonoType>
<PrimaryCat dt="i4">21</PrimaryCat>
<Runtime dt="i4">193906</Runtime>
<Size dt="i4">0</Size>
<SmplRealSize dt="i4">8551296</SmplRealSize>
<StartTime dt="i4">576051</StartTime>
<State dt="i4">0</State>
<FONO_INFO>
<FadeInType dt="i4">1</FadeInType>
<FadeOutType dt="i4">1</FadeOutType>
<FileName>C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3</FileName>
<Gain dt="f">0</Gain>
<MaxLvlOk dt="i4">0</MaxLvlOk>
<Type dt="i4">3</Type>
<VersionIsNull dt="i4">1</VersionIsNull>
<dbID dt="i4">51</dbID>
<FONO_ROTATOR_INFO/>
<FONO_STRING_INFO>
<Album>Fine Music, Vol. 1</Album>
<Artist>Richard Stoltzman/Slovak Radio Symphony Orchestra</Artist>
<Category>category А</Category>
<Comment>http://www.surganova.su (spbaudio@inbox.ru)</Comment>
<CreateDT dt="i8">0</CreateDT>
<DbName>CurrentTest</DbName>
<ModifyDT dt="i8">128312586840000000</ModifyDT>
<Name>Maid with the Flaxen Hair</Name>
<Year dt="i4">2003</Year>
</FONO_STRING_INFO>
</FONO_INFO>
<SUBJECT/>
<UserAttribs>
<ELEM>
<ID dt="i4">5</ID>
<Name>Vocal</Name>
<Value>Female</Value>
</ELEM>
<ELEM>
<ID dt="i4">7</ID>
<Name>Composer</Name>
<Value>Other composer</Value>
</ELEM>
<ELEM>
<ID dt="i4">8</ID>
<Name>Bandmaster</Name>
<Value>Other Bandmaster</Value>
</ELEM>
</UserAttribs>
</Elem>
</ELEM_1>
</root>
</code>
Пример настройки¶