アプリ ユーザーがデバイスからサウンドを録音できるようにするコントロール。
Description
マイク コントロールを使用して、デバイスのマイクでオーディオをキャプチャします。 デバイスにはマイクが必要であり、ユーザーはマイクを使用するアプリを承認する必要があります。
最近録音したオーディオ クリップは、 Audio プロパティを使用して使用できます。 このプロパティを使用すると、録音されたオーディオは次のようになります。
- オーディオ コントロールで再生しました。 オーディオ コントロールを使用して録音を聞きます。 詳細については、 例を参照してください。
- 変数またはコレクションに一時的に配置します。 Set 関数または Collect 関数を使用して、オーディオ クリップを変数またはコレクションに格納します。 デバイスのメモリが限られている場合は、コレクション内の複数のオーディオ クリップに同時に注意してください。 SaveData 関数と LoadData 関数を使用して、オーディオ クリップをデバイス上のローカル ストレージに移動したり、オフラインシナリオに使用したりできます。
- データベースに格納されます。 Patch 関数を使用して、オーディオ クリップをデータベースに格納します。
- base64 でエンコードされたテキスト文字列として送信されます。 JSON 関数を使用して、オーディオ クリップを base64 エンコードします。
録音されたオーディオの形式:
- Android 用の 3gp 形式。
- iOS 用の AAC 形式。
- Web ブラウザーの OGG 形式。
キャプチャされたメディアは、テキスト文字列 URI によって参照されます。 詳細については、 データ型のドキュメントを参照してください。
注
マイク コントロールは、Chromium、Chrome、Firefox ブラウザーに基づく Microsoft Edge でのみサポートされています。および Android および iOS デバイス。 他のすべてのブラウザーとプラットフォームでは、アプリの一部の機能が機能しないという警告が表示されます。
制限事項
マイク コントロールには、次の制限があります。
- Power Apps Mobile はさまざまな種類のデバイスで実行され、その一部には、そのプラットフォームに固有の制限があります。
- iPhone デバイスを除くすべてのプラットフォームで、複数の ビデオ コントロールでビデオを同時に再生できます。
- Web プレーヤーを除くすべてのプラットフォームで、複数の マイク コントロールを使用してオーディオを同時に録音できます。
重要なプロパティ
オーディオ – ユーザーがデバイスのマイクで録音したときにキャプチャされたオーディオ クリップ。
マイク – 複数のマイクを持つデバイス上のマイクの数値 ID。
OnStop – ユーザーがマイク コントロールを使用して録音を停止したときに実行するアクション。
追加のプロパティ
AccessibleLabel – スクリーン リーダー用のラベル。 マイクの目的を説明する必要があります。
BorderColor – コントロールの境界線の色。
BorderStyle – コントロールの境界線が Solid、Dashed、Doted、None のいずれであるか。
BorderThickness – コントロールの境界線の太さ。
色 – コントロール内のテキストの色。
DisplayMode – コントロールでユーザー入力 (編集) を許可するか、データのみを表示するか (表示)、無効 (無効) にするかを指定します。
DisabledBorderColor – コントロールの DisplayMode プロパティが Disabled に設定されている場合のコントロールの境界線の色。
DisabledColor – DisplayMode プロパティが Disabled に設定されている場合のコントロール内のテキストの色。
DisabledFill – DisplayMode プロパティが Disabled に設定されている場合のコントロールの背景色。
塗りつぶし – コントロールの背景色。
FocusedBorderColor – コントロールがフォーカスされている場合のコントロールの境界線の色。
FocusedBorderThickness – コントロールがフォーカスされたときのコントロールの境界線の太さ。
Height – コントロールの上端と下端の間の距離。
HoverBorderColor – ユーザーがそのコントロールにマウス ポインターを置いたままにしたときのコントロールの境界線の色。
HoverColor – ユーザーがマウス ポインターを置いたままにしたときのコントロール内のテキストの色。
HoverFill – ユーザーがマウス ポインターをその上に置いたままにしたときのコントロールの背景色。
Image – 画像、オーディオ、またはマイク コントロールに表示されるイメージの名前。
ImagePosition – 画面内のイメージの位置 (Fill、 Fit、 Stretch、 Tile、または Center) またはコントロールが画像と同じサイズでない場合。
OnSelect – ユーザーがコントロールを選択したときに実行するアクション。
OnStart – ユーザーがマイク コントロールで録音を開始したときに実行するアクション。
PressedBorderColor – ユーザーがそのコントロールを選択したときのコントロールの境界線の色。
PressedColor – ユーザーがそのコントロールを選択したときのコントロール内のテキストの色。
PressedFill – ユーザーがそのコントロールを選択したときのコントロールの背景色。
リセット – コントロールが既定値に戻るかどうか。
TabIndex – 他のコントロールと比較したキーボード ナビゲーション順序。
ヒント – ユーザーがコントロールの上にマウス ポインターを置いたときに表示される説明テキスト。
表示 – コントロールが表示されるか非表示になっているか。
幅 – コントロールの左端と右端の間の距離。
X – コントロールの左端と、その親コンテナーまたは画面の左端との間の距離。
Y – コントロールの上端と親コンテナーまたは画面の上端との間の距離。
例示
単純な直接再生
この例では、 マイク コントロールを Audio コントロールに直接接続して、すぐに再生します。
マイク コントロールをアプリに追加します。
メッセージが表示されたら、アプリがデバイスのマイクを使用することを承認します。
オーディオ コントロールをアプリに追加します。
Audio コントロールの Media プロパティを数式に設定します。
Microphone1.Audio注
必要に応じて、マイク コントロール名 Microphone1 を置き換えます。
アプリをプレビューします。
マイク コントロールを選択して録音を開始します。
音声を録音するために話します。
もう一度 マイク コントロールを選択して、録音を終了します。
録音を読み上げる オーディオ コントロールを選択します。
ギャラリー コントロールにサウンドを追加する
この例では、再生用に個別に選択できるコレクションに格納されているオーディオ クリップのギャラリーを作成します。
マイク コントロールを追加します。
Collect 関数を使用して、OnStop プロパティを次の数式に設定します。
Collect( MySounds, MyMic.Audio )ギャラリー コントロールを追加し、MyMic の下に移動します。
ギャラリーの Items プロパティを次の数式に設定します。
MySoundsカスタム ギャラリー コントロールのテンプレートで、オーディオ コントロールを追加します。
オーディオ コントロールの Media プロパティを次の数式に設定します。
ThisItem.UrlF5 キーを押してアプリをプレビューします。
MyMic を選択して録音を開始し、もう一度選択して録音を停止します。
ギャラリー コントロールで、オーディオ コントロールの再生ボタンを選択して録音を再生します。
必要な数の録音を追加し、Esc キーを押して既定のワークスペースに戻ります。
(省略可能) ギャラリー コントロールのテンプレートで、 Button コントロールを追加します。
OnSelect プロパティを数式に設定します。
Remove( MySounds, ThisItem )F5 キーを押し、対応する Button コントロールを選択して記録を削除します。
SaveData 関数を使用して記録をローカルに保存するか、Patch 関数を使用してデータ ソースを更新します。
アクセシビリティ ガイドライン
マイクは単なる特殊なボタンであるため、Button にも同じガイドラインが適用されます。 また、次の点も考慮してください。
オーディオの代替手段
音声障害のあるユーザーまたはマイクがないユーザーに対して、代替形式の入力を追加することを検討してください。 たとえば、 ユーザーがテキストを入力 できるようにするテキスト入力などです。
色のコントラスト
- 標準の カラー コントラスト要件を確認します。
- 画像とボタンのテキストとアイコンの間に適切な色のコントラストを確保します (該当する場合)。
スクリーン リーダーのサポート
- AccessibleLabel が存在する必要があります。