以前、マイク音声を取得して発話中だけカウントダウンするタイマーを公開しました。


マイク音声を取得して発話中だけカウントダウンするタイマー、VoiceChronoを作ってみた

マイク音声を取得して発話中だけカウントダウンするタイマー、VoiceChronoを作ってみた

マイク音声を取得し、発話中だけカウントダウンするタイマーを作ってみた日記です。


先日、このタイマーのメジャーアップデートをしました。



追加機能

Discord通知機能

VoiceChrono設定画面のDiscord通知機能

このアプリは元々、ラジオ収録の時に、お互いの持ち時間があとどれくらいかをチェックする目的で開発していました。


これまで、Discordでお互いのタイマーの画面を共有しながら時間チェックをしていたのですが、3人以上で喋る時に、他の人の画面を同時に2画面見るのが難しかったんですね(複数人の画面共有をまとめて見ることができないので)。

ということで、新機能として、設定しておいた残り時間になったら、指定のDiscordのチャンネルに通知する、という仕組みを作ってみました。


とはいえ、全く知らない外部の人の通知が飛んできても困るので、秘密のパラメータをつけてアクセスした場合のみ、ユーザー設定できるようにしています。

VoiceChrono設定画面

admin機能を作るか考えたのですが、そこまで大掛かりにしなくてもいいかな、と思って、かなりシンプルに実装しました。




パラメータや、保存されるuserIDは軽く暗号化しています。

暗号化はこちらの記事を参考にしました。

100日後に完成するゲームシステム 30日目「セーブデータの暗号化処理」

100日後に完成するゲームシステム 30日目「セーブデータの暗号化処理」

IT,技術学習,アイデア,妄想.日記,メンタル,継続,ブログ,Podcast,プログラミング,DIY,クリエイティブ,デザイン,





リリース当初から、画面共有ではない形で、参加メンバーの残り時間をお互いに簡単に知れる仕組みがあったらいいなぁという要望は出ていました。

そうなるとWebSocketを使うか、Firebaseで何秒おきかに情報を保存するか...?と迷って、ちょっと先延ばしになっていたのですね。

今回、Gitlab Pagesで静的ページとして公開しているので、あまり複雑なことはできないよなぁと。


が、ふとDiscordのWebhookを使えば秒でできるのでは?とティンときたので、秒で作ったのがこちらです。



使ってみてどうだったか

喋っている最中でも、誰があとどれくらいの残り時間なのかがシンプルにわかりやすいな、と思いました。

集中して喋っていると、自分の時間を忘れてしまいがちなのですが、通知で可視化できるのが結構便利。

使ってくれたメンバーからも好評でした。やったね!✌︎('ω'✌︎ )



まとめ

今回初めてDiscordのWebhookを使った実装をしてみたのですが、これは色々使えそうですね。

完全に内輪向けの機能としてリリースしたのですが、もし需要があれば、誰でもDiscordチャンネルの設定が自由にできるような仕組みに改良する。かもしれん。