開発の背景
コロナ禍において在宅ワークが主流の世の中になり、仕事中に気分転換で音楽を聴く人が増えたかと思います。私はspotifyのPC版アプリを使って音楽を聴いているのですが、仕事で使う開発用のエディタ、ブラウザやチャットツール等を立ち上げているとspotifyが後ろに隠れてしまい、曲を飛ばしたり、プレイリストを切り替えたりするのに非常に手間がかかります。
そこで今回、obnizを使ってspotifyを物理的に操作できるコントローラであるMusic Clickerを開発しました。このMusic Clickerを使うことでPC上の多数のアプリに埋もれているspotifyを探すこと無く、spotifyの操作を物理的に、そして直感的に行うことができます。
デモ動画
以下の動画にある通り、obnizのボタンを下に倒すと現在再生しているspotifyのプレイリストの曲を飛ばすことができます。
システム構成
-
obnizのボタンを下に倒すとプレイリストの曲を飛ばす、上に倒すと曲をポーズする命令をGoogle Apps Scriptのサーバに飛ばす。
-
obnizからの命令を受けるとその命令にしたがってspotifyのAPIを叩く
-
spotifyサーバから自分のPC上で動作しているspotifyアプリに命令が飛ぶ。
プログラム
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@3.x/obniz.js" crossorigin="anonymous" ></script>
</head>
<body>
<script>
//put your obniz ID
var obniz = new Obniz("OBNIZ_ID_HERE");
url = "XXXXX";
//during obniz connection
obniz.onconnect = async function() {
//init switch state on obniz
await obniz.switch.getWait();
obniz.display.clear();
obniz.display.print("Music Clicker");
obniz.switch.onchange = function(state) {
command = "";
if (state === "right") {
command = "play";
} else if (state === "left") {
command = "pause";
}
fetch(url + "?command=" + command);
};
setInterval(function(){
done();
}, 20000)
};
</script>
</body>
</html>
Google Apps Script側は別途ソースコードを書いています。
最後に
今回は時間の都合上obnizのボタンのみを活用しましたが、今後は以下のように拡張し、在宅ワークでの音楽生活をより楽しく便利にしていく予定です。
在宅ワークでの課題及びMusic Clickerでの解決案
- 在宅ワークだと休憩をとるのを忘れて作業に没頭し、疲れすぎてしまう。
- obnizのタイマを使って2時間に一回リフレッシュできる曲を再生し、その音楽が流れたら休憩する
- 朝、自宅の机に座ってspotifyの再生ボタンを押すのがめんどくさい。終業時にストップするのがめんどくさい。
- 人感センサを使って人がくると自動で再生、人がいなくなると自動でストップする
-
tsukasa
さんが
2021/05/14
に
編集
をしました。
(メッセージ: 初版)
-
tsukasa
さんが
2021/05/14
に
編集
をしました。
-
tsukasa
さんが
2021/05/14
に
編集
をしました。
ログインしてコメントを投稿する