Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:blog:muzei_and_tasker

[Android] Muzei и Tasker. Динамическая смена обоев

В данной статье будет показан пример настройки приложения для управления обоями рабочего стола Muzei Live Wallpaper1) и утилиты Tasker, с помощью которой мы будем динамически изменять источник обоев в зависимости от заданных нами параметров.

Итак, на входе мы имеем отличное приложение Muzei, которое добавляет эффект размытия и затемнения к обоям рабочего стола, при этом умеет менять их с определенным интервалом времени. К данному приложению, посредством плагинов, подключаются разные источники обоев. Мне больше всего приглянулся плагин, который меняет обои в соответствии с проигрываемой в данный момент песней.

Требования

  1. Телефон на базе Android;
  2. Приложение Muzei Live Wallpaper;
  3. Плагины для Muzei Muzei Music Extension и Taskei - Tasker for Muzei;
  4. И, собственно, Tasker.

Как это работает

В стандартной ситуации обои на моём рабочем столе появляются из встроенного в Muzei источнике и меняются по заданному в нём интервале, но как только начинает играть музыка, источником обоев становится Muzei Music Extension и меняет обои в соответствии с текущим треком.

За всё это отвечает Taskei - Tasker for Muzei. В Tasker создана задача, которая реагирует на изменение переменной %MTRACK (точнее реагирует на её появление, %MTRACK – текущий проигрываемый трек). Как только таскер определяет, что переменная задана, т.е. мы слушаем музыку, он начинает выполнять задачу:

  1. Taskei - Tasker for Muzei меняет источник обоев на Muzei Music Extension;
  2. Как только мы перестаём слушать музыку, Tasker ждет 3 секунды и, в случае, если переменная %MTRACK не найдена, возвращает источник обоев на стандартный (задержка в 3 секунды и проверка переменной сделана для того, чтобы обои не менялись в моменты смены аудиофокуса).

Как это сделать

  1. Для начала запустим Muzei и выберем в источниках обоев плагин Taskei - Tasker for Muzei, после чего запускаем Tasker;
  2. В Tasker нажатием на вкладку «Профили» (Profiles) чем вызовем контекстное меню с пунктом «Импорт» (Import);
  3. Нажав на Импорт выбирайте местоположение файла, который я выложил чуть ниже.
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>

1)
Очень простое приложение для использования «живых» обоев рабочего стола Android
docs/blog/muzei_and_tasker.txt · Последнее изменение: 05.03.2014 10:59 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki