Содержание
[Android] Muzei и Tasker. Динамическая смена обоев
В данной статье будет показан пример настройки приложения для управления обоями рабочего стола Muzei Live Wallpaper1) и утилиты Tasker, с помощью которой мы будем динамически изменять источник обоев в зависимости от заданных нами параметров.
Итак, на входе мы имеем отличное приложение Muzei, которое добавляет эффект размытия и затемнения к обоям рабочего стола, при этом умеет менять их с определенным интервалом времени. К данному приложению, посредством плагинов, подключаются разные источники обоев. Мне больше всего приглянулся плагин, который меняет обои в соответствии с проигрываемой в данный момент песней.
Требования
- Телефон на базе Android;
- Приложение Muzei Live Wallpaper;
- Плагины для Muzei Muzei Music Extension и Taskei - Tasker for Muzei;
- И, собственно, Tasker.
Как это работает
В стандартной ситуации обои на моём рабочем столе появляются из встроенного в Muzei источнике и меняются по заданному в нём интервале, но как только начинает играть музыка, источником обоев становится Muzei Music Extension и меняет обои в соответствии с текущим треком.
За всё это отвечает Taskei - Tasker for Muzei. В Tasker создана задача, которая реагирует на изменение переменной %MTRACK
(точнее реагирует на её появление, %MTRACK
– текущий проигрываемый трек). Как только таскер определяет, что переменная задана, т.е. мы слушаем музыку, он начинает выполнять задачу:
- Taskei - Tasker for Muzei меняет источник обоев на Muzei Music Extension;
- Как только мы перестаём слушать музыку, Tasker ждет 3 секунды и, в случае, если переменная
%MTRACK
не найдена, возвращает источник обоев на стандартный (задержка в 3 секунды и проверка переменной сделана для того, чтобы обои не менялись в моменты смены аудиофокуса).
Как это сделать
- Для начала запустим Muzei и выберем в источниках обоев плагин Taskei - Tasker for Muzei, после чего запускаем Tasker;
- В Tasker нажатием на вкладку «Профили» (Profiles) чем вызовем контекстное меню с пунктом «Импорт» (Import);
- Нажав на Импорт выбирайте местоположение файла, который я выложил чуть ниже.
- tasker.xml
<TaskerData sr="" dvi="1" tv="4.3b8m"> <Profile sr="prof7" ve="2"> <cdate>1393856676414</cdate> <edate>1393937870368</edate> <id>7</id> <mid0>10</mid0> <mid1>17</mid1> <nme>Muzei Music</nme> <State sr="con0"> <code>165</code> <Str sr="arg0" ve="3">%MTRACK</Str> <Int sr="arg1" val="9"/> <Str sr="arg2" ve="3"/> </State> </Profile> <Task sr="task10"> <cdate>1393856679646</cdate> <edate>1393937865789</edate> <id>10</id> <Action sr="act0" ve="5"> <code>7582</code> <Bundle sr="arg0"> <Vals sr="val"> <com.twofortyfouram.locale.intent.extra.BLURB>Music</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> <taskei.extras.component>com.simplecity.muzei.music/com.simplecity.muzei.music.MusicExtensionSource</taskei.extras.component> <taskei.extras.component-type>java.lang.String</taskei.extras.component-type> <taskei.extras.setting>taskei.settings.changesource</taskei.extras.setting> <taskei.extras.setting-type>java.lang.String</taskei.extras.setting-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.getgoodcode.taskei</Str> <Str sr="arg2" ve="3">Muzei Source</Str> <Int sr="arg3" val="0"/> </Action> </Task> <Task sr="task17"> <cdate>1393856710032</cdate> <edate>1393937870368</edate> <id>17</id> <Action sr="act0" ve="5"> <code>30</code> <Int sr="arg0" val="0"/> <Int sr="arg1" val="3"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> </Action> <Action sr="act1" ve="5"> <code>7582</code> <Bundle sr="arg0"> <Vals sr="val"> <com.twofortyfouram.locale.intent.extra.BLURB>Featured Art</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> <taskei.extras.component>net.nurik.roman.muzei/com.google.android.apps.muzei.featuredart.FeaturedArtSource</taskei.extras.component> <taskei.extras.component-type>java.lang.String</taskei.extras.component-type> <taskei.extras.setting>taskei.settings.changesource</taskei.extras.setting> <taskei.extras.setting-type>java.lang.String</taskei.extras.setting-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.getgoodcode.taskei</Str> <Str sr="arg2" ve="3">Muzei Source</Str> <Int sr="arg3" val="0"/> <ConditionList sr="if"> <Condition sr="c0"> <lhs>%MTRACK</lhs> <op>10</op> <rhs></rhs> </Condition> </ConditionList> </Action> </Task> </TaskerData>
Как это выглядит
<html> <iframe width=«420» height=«315» src=«www.youtube.com/embed/EHvDStzn8Lc» frameborder=«0» allowfullscreen></iframe> </html> ===== Дополнительные ссылки =====
<html>
<a href=«http://playboard.me/android/apps/net.nurik.roman.muzei»>Muzei Live Wallpaper (Playboard)</a> | <a href=«https://play.google.com/store/apps/details?id=net.nurik.roman.muzei&hl=en» rel=«nofollow» target=«_blank»>Muzei Live Wallpaper (Play Store)</a>
<script type=«text/javascript» src=«playboard.me/widgets/pb-app-box/1/pb_load_app_box.js»></script> </html> <html>
<a href=«http://playboard.me/android/apps/com.simplecity.muzei.music»>Muzei Music Extension (Playboard)</a> | <a href=«https://play.google.com/store/apps/details?id=com.simplecity.muzei.music&hl=en» rel=«nofollow» target=«_blank»>Muzei Music Extension (Play Store)</a>
<script type=«text/javascript» src=«playboard.me/widgets/pb-app-box/1/pb_load_app_box.js»></script> </html> <html>
<a href=«http://playboard.me/android/apps/com.getgoodcode.taskei»>Taskei - Tasker for Muzei (Playboard)</a> | <a href=«https://play.google.com/store/apps/details?id=com.getgoodcode.taskei&hl=en» rel=«nofollow» target=«_blank»>Taskei - Tasker for Muzei (Play Store)</a>
<script type=«text/javascript» src=«playboard.me/widgets/pb-app-box/1/pb_load_app_box.js»></script> </html> <html>
<a href=«http://playboard.me/android/apps/net.dinglisch.android.taskerm»>Tasker (Playboard)</a> | <a href=«https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en» rel=«nofollow» target=«_blank»>Tasker (Play Store)</a>
<script type=«text/javascript» src=«playboard.me/widgets/pb-app-box/1/pb_load_app_box.js»></script> </html>