Main

Запуск на проигрывание любимой музыки

Это простой скрипт, который я использую в своём утреннем сценарии -- когда система утром обнаруживает движение в коридоре, то начинает играть что-то из моей любимой музыки.

В разделе Скрипты я создал скрипт с названием playFavoriteMusic вот с таким содержимым:


$rec=SQLSelectOne("SELECT * FROM media_favorites ORDER BY RAND()");
$collection=SQLSelectOne("SELECT * FROM collections WHERE ID=".(int)$rec['COLLECTION_ID']);
$path=$collection['PATH'].$rec['PATH'];
playMedia($path);

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

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

runScript("playFavoriteMusic");

В данном конкретном случае эта команда была добавлена в скрипт morningGreeting, упомянутый в данном сценарии.

Обновление

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

// вытягиваем историю из переменной
$alreadyPlayed=gg("AlreadyPlayedMusic");
if (!$alreadyPlayed) {
 $alreadyPlayed='0';
}

// выбираем случайную папку
$rec=SQLSelectOne("SELECT * FROM media_favorites WHERE ID NOT IN (".$alreadyPlayed.") ORDER BY RAND()");

if (!$rec['ID']) {
 // папок больше не осталось, поэтому выбираем случайную и сбрасываем истоирю
 $rec=SQLSelectOne("SELECT * FROM media_favorites ORDER BY RAND()");
 $alreadyPlayed='0';
}


if ($rec['ID']) {

 // добавляем выбранную папку в историю
 $alreadyPlayed.=','.$rec['ID'];
 sg("AlreadyPlayedMusic",$alreadyPlayed);

 // запускаем на проигрывание
 $collection=SQLSelectOne("SELECT * FROM collections WHERE ID=".(int)$rec['COLLECTION_ID']);
 $path=$collection['PATH'].$rec['PATH'];
 playMedia($path);

}
 
 

Обсуждение

 

[ Обсудить на форуме ]

 

MajorDomo

Информация

Проекты

Партнёры

edit SideBar

 
 
 

 

Blix theme adapted by David Gilbert, powered by PmWiki