みかづきブログ・カスタム

基本的にはちょちょいのほいです。

Next.js + RecorderService.js でブラウザで音声を録音する 🎙

f:id:kimizuka:20210128104858p:plain

mobile Safariから音声を投稿する仕組みを考えていたところ、MediaRecorder APIたるものを発見しました。

developer.mozilla.org

当初は、

  1. ボイスメモで録音(音声ファイルを生成)
  2. どうにかしてブラウザから音声ファイルにアクセス
  3. ファイルアップロード

という手順を考えていたのですが、音声ファイルへのアクセスで苦戦しており、

  1. ブラウザで録音(音声ファイルを生成)
  2. ファイルアップロード

でいけるのであれば、手軽だなと思い調査を進めたところ、MediaRecorder APIをラップしたコードを公開しているリポジトリを見つけました。

github.com

デモを試したところ、iOS14のiPhoneでも、Android10のPixelでも動作したので、作者に感謝しつつ利用させもらうことにしました。

kaliatech.github.io

ただ、デモがVue.jsで書かれていたので、そこだけReact.jsというかNext.jsに移植してみました。
ついでにデザインをiPhoneのボイスメモ風にしました。

リポジトリ

github.com