tsukasa が 2021年05月14日01時03分46秒 に編集
コメント無し
記事種類の変更
製作品
本文の変更
# 開発の背景
コロナ禍において在宅ワークが主流の世の中になり、仕事中に気分転換で音楽を聴く人が増えたかと思います。 私はspotifyのPC版アプリを使って音楽を聴いているのですが、仕事で使う開発用のエディア、ブラウザやチャットツール等を立ち上げているとspotifyが後ろに隠れてしまい、曲を飛ばしたり、プレイリストを切り替えたりするのに非常に手間がかかります。 そこで今回、obnizを使ってspotifyの操作を物理的に操作できるコントローラであるMusic Clickerを開発しました。このMusic Clickerを使うことでPC上の多数のアプリに埋もれているspotifyを探すこと無く、spotifyの操作を物理的に、そして直感的に行うことができます。
コロナ禍において在宅ワークが主流の世の中になり、仕事中に気分転換で音楽を聴く人が増えたかと思います。私はspotifyのPC版アプリを使って音楽を聴いているのですが、仕事で使う開発用のエディタ、ブラウザやチャットツール等を立ち上げているとspotifyが後ろに隠れてしまい、曲を飛ばしたり、プレイリストを切り替えたりするのに非常に手間がかかります。
そこで今回、obnizを使ってspotifyを物理的に操作できるコントローラであるMusic Clickerを開発しました。このMusic Clickerを使うことでPC上の多数のアプリに埋もれているspotifyを探すこと無く、spotifyの操作を物理的に、そして直感的に行うことができます。
# デモ動画
以下の動画にある通り、obnizのボタンを右に倒すと現在再生しているspotifyのプレイリストの曲を飛ばすことができます。
以下の動画にある通り、obnizのボタンを下に倒すと現在再生しているspotifyのプレイリストの曲を飛ばすことができます。
@[youtube](https://youtu.be/cH_GF-fhhsk) # システム構成 ![](https://camo.elchika.com/4af3ef2db3aa2e32614f42695f2de5a6f6d7a910/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f63636466366432352d373466622d343265382d616563322d3666646364326661616433312f65313539303363352d323762342d346265352d623364652d666433613765336131356631/)
1. obnizのボタンを右に倒すとプレイリストの曲を飛ばす、左に倒すと曲をポーズする命令をGoogle Apps Scriptのサーバに飛ばす。
1. obnizのボタンを下に倒すとプレイリストの曲を飛ばす、上に倒すと曲をポーズする命令をGoogle Apps Scriptのサーバに飛ばす。
2. obnizからの命令を受けると命令にしたがってspotifyのAPIを叩く
2. obnizからの命令を受けるとその命令にしたがってspotifyのAPIを叩く
3. spotifyサーバから自分のPC上で動作しているspotifyアプリに命令が飛ぶ。 # プログラム ```obniz側のソースコード <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のボタンのみを活用しましたが、今後は以下のように拡張し、在宅ワークでの音楽生活をより楽しく便利にしていく予定です。
今回は時間の都合上obnizのボタンのみを活用しましたが、今後は以下のように拡張し、在宅ワークでの音楽生活をより楽しく便利にしていく予定です。
### 在宅ワークでの課題及びMusic Clickerでの解決案 - 在宅ワークだと休憩をとるのを忘れて作業に没頭し、疲れすぎてしまう。 - obnizのタイマを使って2時間に一回リフレッシュできる曲を再生し、その音楽が流れたら休憩する - 朝、自宅の机に座ってspotifyの再生ボタンを押すのがめんどくさい。終業時にストップするのがめんどくさい。 - 人感センサを使って人がくると自動で再生、人がいなくなると自動でストップする