tsukasaのアイコン画像
tsukasa 2021年05月14日作成 (2021年05月14日更新)
製作品 製作品 閲覧数 914
tsukasa 2021年05月14日作成 (2021年05月14日更新) 製作品 製作品 閲覧数 914

Music Clicker ~ spotifyを自在に操作する夢のデバイス ~

Music Clicker ~ spotifyを自在に操作する夢のデバイス ~

開発の背景

コロナ禍において在宅ワークが主流の世の中になり、仕事中に気分転換で音楽を聴く人が増えたかと思います。私はspotifyのPC版アプリを使って音楽を聴いているのですが、仕事で使う開発用のエディタ、ブラウザやチャットツール等を立ち上げているとspotifyが後ろに隠れてしまい、曲を飛ばしたり、プレイリストを切り替えたりするのに非常に手間がかかります。

そこで今回、obnizを使ってspotifyを物理的に操作できるコントローラであるMusic Clickerを開発しました。このMusic Clickerを使うことでPC上の多数のアプリに埋もれているspotifyを探すこと無く、spotifyの操作を物理的に、そして直感的に行うことができます。

デモ動画

以下の動画にある通り、obnizのボタンを下に倒すと現在再生しているspotifyのプレイリストの曲を飛ばすことができます。

ここに動画が表示されます

システム構成

  1. obnizのボタンを下に倒すとプレイリストの曲を飛ばす、上に倒すと曲をポーズする命令をGoogle Apps Scriptのサーバに飛ばす。

  2. obnizからの命令を受けるとその命令にしたがってspotifyのAPIを叩く

  3. 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の再生ボタンを押すのがめんどくさい。終業時にストップするのがめんどくさい。
    • 人感センサを使って人がくると自動で再生、人がいなくなると自動でストップする
ログインしてコメントを投稿する