Bubbleのプラグイン「Howler.js」で音声ファイルの再生・一時停止機能を作る方法

著者:大熊滉希
ノーコード特化のアプリ/システム開発事業を展開するEPICsの代表。
前職にて新規事業コンサルティングを行う企業で役員を歴任した後、
最小の経営資源で開発を行えるノーコードに可能性を感じEPICsを創業。

運営会社:EPICs株式会社
日本最大級の開発実績を誇るノーコード特化のアプリ/システム開発会社。
最安30万円・最短2週間から、BubbleやAdaloなど多様なツールの中からニーズに合わせた最適な開発を提案・実施している。Adalo公認エキスパートも在籍。

ノーコードツール「Bubble」でプラグイン「Howler.js」を使って音声再生機能を作る方法を紹介します。

アップロードしたMP4の音声ファイルを、ボタンをクリックで再生、一時停止、再開とステータスを切り替える、Apple Musicなどの音楽プレイヤーでよく見かけるあの機能です。

実際のエディタキャプチャをふんだんに盛り込んでBubble初学者でも簡単に実装できるように解説するので、ぜひ手を動かしながらお試しくださいませ!

目次
無料で資料をダウンロード

日本最大級のノーコード開発実績

ノーコード開発サービスのご案内

  • EPICsのノーコード受託開発の特徴
  • 支援実績・事例集
  • 料金・サービス提供の流れ
【一分で完了】資料をダウンロード

音声ファイル再生機能の実装イメージ

以下のような実装をしていきます。

  • 再生ボタンを押したらPlay=>カスタムステートをyesにセット
  • カスタムステートがyesのときに再生ボタンを押したらPause(一時停止)=>カスタムステートをnoにセット
  • 再生が終了したときにカスタムステートをnoにセット
  • 「再生」と「停止」アイコンはConditionalで、カスタムステートの値によって切り替える

BubbleのCustom stateが今回の実装の肝です!

ちなみに、Element Tree(構造)は以下でいきます。

今回紹介する音声再生機能を作る上で必要なのはGroupと、Icon、Howlerの3要素なので、Imageサムネは無くて大丈夫です。デモページでは見栄えを良くするために置きました。よしなに〜

Bubbleで音声ファイルを再生する実装手順

Howler.jsを駆使したBubbleでの音声ファイルの再生機能は、以下の手順で実装します。

  1. プラグイン「Howler.js」をインストール
  2. 再生アイコンの親Groupにカスタムステートを設定する
  3. 再生アイコンを設置
  4. Conditonalでカスタムステート使って再生アイコンを停止アイコンに切り替える設定をする
  5. Howler.jsのエレメントを設置
  6. 再生ボタンをクリックしたときのワークフローを設定する
  7. 停止ボタンをクリックしたときのワークフローを設定する
  8. 音声が再生終了したときのワークフローを設定する

ワークフローは全部で3つ組みます。

プラグイン「Howler.js」をインストール

プラグイン新規追加画面でHowlerと検索してインストールします。

再生アイコンの親Groupにカスタムステートを設定

Groupエレメントにカスタムステート「play」を「yes/no」で追加します。デフォルトvalueはnoにしておきましょう。

後ほど再生アイコンをクリックしたときなどのワークフローでこのGroupのカスタムステートのvalueを変更することで音声の再生・一時停止・再開だけでなく、再生アイコンから一時停止アイコンに切り替える処理も行うので超重要です。

再生アイコンを設置

再生アイコンをIconエレメントで追加します。

今回はアイコン色は白色で、サイズは56px × 56pxにしました。

サムネ画像を設置する場合はMargin topを16pxくらいつけるといい感じの余白感になります。

Conditonalでカスタムステート使って再生アイコンを停止アイコンに切り替える設定する

IconのConditionalタブを開き、親Groupに設定したカスタムステート「play」がyesだった場合に、アイコンを一時停止アイコンに切り替える設定をします。

一時停止アイコンが若干太ってる感じで気になりますが….。多めにみておきましょう。

Howler.jsのエレメントを設置

Howler.jsをインストールすると、Howlerエレメントが使えるようになります。

音声を再生するアイコンの下に設置しましょう。

例では、再生対象の音声ファイルは下記のサンプル音声配布サイトからダウンロードしたものをアップロードしてセットしました。

音声サンプルダウンロード元:http://pro-video.jp/voice/announce/

動的にアップロードする場合などは、データベースにファイル格納用のを作るなどして、ご自身のプロジェクトによって調整してください。

再生ボタンをクリックしたときのワークフローを設定

親Groupのカスタムステート「play」が「no」のときに再生ボタン(Icon)をクリックしたときのワークフローを組みます。

ワークフローStep1で、Element Actions > Play a Howlerを選択します。

次にワークフローStep2で、Set Stateで、親Groupのカスタムステートをyesにセットします。

こうすることで音声再生中状態を判定できます。

停止ボタンをクリックしたときのワークフローを設定

次に、親Groupのカスタムステート「play」が「yes」のとき、つまり音声再生中に再生ボタン(Icon)をクリックしたときのワークフローを組みます。

ワークフローStep1で、Element Actions > Pause a Howlerを選択します。

次にワークフローStep2で、Set Stateで、親Groupのカスタムステートをnoにセットします。

音声が再生終了したときのワークフローを設定する

最後に、イベント「A Howler has finished playing」を使い、音声の再生が終了したときに、親Groupのカスタムステート「play」のvalueを「no」にセットして完成です!

無料で資料をダウンロード

ノーコード開発サービスのご案内

日本最大級のノーコード開発実績

  • EPICsのノーコード受託開発特徴
  • 支援実績・事例集
  • 料金・サービス提供の流れ

    氏名

    法人名

    メールアドレス

    電話番号

    送信ボタンを押すことで、個人情報の取扱いについてに同意したとみなされます

    「勉強になった!」「役に立った!」と思っていただけたら、是非シェアもお願いします!
    目次