PowerAppsのマイクコントロールの録音データを保存する


本日の投稿背景

巷でPowerAppsの楽器作成が流行っているのですが
そこでよく聞かれるのが
「マイクコントロールの音声ってどうやって保存するの?」
ということですので、実際にやってみました。

必要なもの

Azure

ストレージアカウントが必要です。
作成方法は後で記載します。
料金はかなり控えめですので(多くても6.6円/GB/月)なので出し惜しみしないように!

PowerApps

  • ストレージアカウントとの接続
  • マイクコントロール
  • ボタン

Azure側操作

ストレージアカウントの用意

Azureポータルにサインインしましょう。

アカウントをお持ちでない方も、Office365アカウントでログインすればすんなりできると思います。
これを機にAzureを使いこなしましょう。

左メニューのストレージアカウントをクリックします。

追加をクリックします。

ストレージアカウント作成画面を設定します。

リソースグループが存在しないときは、リソースグループの作成が求められますので
作成してください。
また、ストレージアカウント名は世界で唯一の名称が必要です。
先頭にテナント名なんかにしとくとよろしいかと思います。
あと、アカウントの種類は必ずStorageV2にしてください!

必須項目を入力したら、確認及び作成をクリックします。

確認画面で検証に成功しましたと出たら、容赦なく「作成」をクリックしましょう。

作成が完了すると以下のような画面になります。

「リソースに移動」をクリックしましょう。

BLOBコンテナの作成

BLOBコンテナとは、フォルダみたいなものです。
BLOB直下にはデータを置くことができず、必ずコンテナを作成して
コンテナを指定してからファイルをアップロードすることになります。

左メニューからBLOBをクリックし、「コンテナー」をクリックしてください。


コンテナー名を任意の名称で作成し、「OK」をクリックしてください。
また、このコンテナー名称は後で使用しますので、メモ帳などにコピペしておきましょう。

BLOBアクセスキーの取得

BLOBに外部サービスからアクセスする際は
* ストレージアカウント名
* アクセスキー
この二つが必要になります。
BLOBを作成した際に生成されていますので、取得しましょう。
左メニューからアクセスキーをクリックします。

赤枠で示したボタンでそれぞれコピーできますので
ストレージアカウント名とアクセスキーをメモ帳などにコピペしておきましょう。

これでAzure側の操作は完了です。

PowerApps側

接続の設定

先ほど作成した BlobにPowerAppsから接続する定義を設定します。


設定メニューから「接続」をクリックします。


「新しい接続」をクリックします。


「Azure Blob Storage」をクリックします。


ポップアップ表示されるので
メモ帳などに記録している、ストレージアカウント名とアクセスキーを入力して
「作成」をクリックしてください。


このようになっていれば問題ありません。

アプリの作成

キャンバスアプリを作成します。

データソースの追加


まずは、ビューから「データソース」をクリックします。


「データソースの追加」をクリックします。


先ほど作成した接続が出てきますので、それをクリックします。

このようになればOKです。

マイクコントロールアクションの設置


挿入>メディア>マイク をクリックします。

送信用ボタンの設置


挿入>ボタン をクリックします。

ボタンを押したときに、BLOBに送信されるようにします。
OnSelectに以下を宣言します。

OnSelectプロパティ
AzureBlobStorage.CreateBlockBlob(
    "audiocontoller",   //コンテナ名称
    "Audiodata.aac",    //ファイル名
    Microphone1.Audio   //マイクコントロール名称.Audioプロパティ
)

これで作業は終了です。

マイクコントロールで録音後
ボタンを押すと、Blobに送信され、Blobを確認すると以下のようになっていれば成功です!

最後に

この投稿が参考になったと思う方は、ぜひいいねとフォローをお願いします!