5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAppsでボタンが押されたら音を再生する方法2つ

Posted at

はじめに

PowerAppsのアプリでボタンが押されたら何かの音(音楽)を再生したいことがあって調べたので忘れないようにメモ

#PowerAppsで音を再生する方法

メディアコントールを使う基本

Power Apps でのオーディオとビデオのコントロール
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/controls/control-audio-video

キャンバスアプリでオーディオコントロールを挿入します。
image.png
最初からサンプルミュージックが入っているので再生ボタンを押すと再生されます。
好みの音に変えたい場合はmp3などで音源を用意してアップロードします。
image.png
オーディオコントロールのMediaプロパティの内容をアップロードした音源のファイル名に変更できます。

##ボタンを押したら再生する方法1
ここからが本題です。メディアコントロールの再生ボタンではなく別のボタンを押したら再生する方法1

キャンバスにボタンを1つ挿入します。(ここではButton1と言う名前です)
image.png
メディアコントロールのStartプロパティを以下のように設定します。

If(Button1.Pressed,true,false)

image.png

これでボタンを押すと音の再生が始まります。
この方法簡単なのですが欠点があります。
・ボタンを離すと再生が止まる。再度押すと止まった場所から再生が始まる
・ボタンを押したときに状況によって再生する音の使い分けをしたい場合難しい(例えばクイズに正解したら「ピンポン」、間違ったら「ブー」のように)
このような問題を解決する為に次のように変数を使った再生が可能です。

##ボタンを押したら再生する方法2(変数を使う)
ボタンを押したときに変数を設定します。(ここではグローバル変数を使って解説しますがコンテキスト変数でも動作は同じです)
ボタンのOnSelectプロパティを以下のように変更します。

Set(playSound,true)

image.png

オーディオコントロールのStartプロパティを変更します。

If(playSound,true,false)

image.png
image.png

これでボタンを押すと音が最後まで再生されます。ボタンを押したときにif文などで条件を判断して再生する音を使い分けることも出来ます。
ここまでは簡単に出来たのですがハマった部分があります。
この設定だとボタンを押した1回目は音が再生されるのですが2回目以降はうんともすんとも音が出ません。
Resetプロパティとか色々いじったのですが解決せず。
ここで見つけたのがこのYoutube!神です。
https://www.youtube.com/watch?v=Tm_OtW1EQZ8&t=20s
MicrosoftのPowerApps担当のBrian Dangさんですね、ありがとうございます。

判明したのはここで使っている変数(playSound)の値をfalseに戻さないといけないという事です。
もう一つボタンを用意してset(playSound,false)のようにしても良いのですが、オーディオコントロールのOnEndプロパティを使う方法があります。OnEndには音の再生が終わった後の動作を書くことが出来ます。

Set(playSound,flase)

image.png

これで何度ボタンを押してもちゃんと再生されるようになりました。

皆様良いPoweAppsライフを!

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?