AlertとPlaySoundを連続で実行するとAlertの音声が勝ってしまう
エントリーやエグジットのタイミングで、アラートポップアップを始めとする通知を出力したいという要望は非常に多いです。
私はメール送信、プッシュ通知、アラートポップアップ、プレイサウンドをパラメータでON/OFFできるようにする方法をよく使います。
今回はその中でもアラートポップアップとプレイサウンドの音声出力の優先順位にフォーカスを当ててみます。
アラートポップアップにはAlert関数を使いますが、この関数を呼ぶとポップアップが表示されるとともに、MT4に設定されている音声(デフォルトはalert.wav)も出力されます。
「ピロリーン♪」っていう音ですね。
でも、これだと一律で同じ音声なので、「Aというエントリーではこの音」、「Bというエントリーではこの音」みたいな使い分けができません。
そのため、PlaySound関数を使います。この関数を実行すれば任意の音声を鳴らすことができます。
PlaySoundで鳴らしたい音声ファイル名をパラメータ化しておけば、ユーザーの好みの音声に設定することができます。
上記の例の場合、AとBのエントリー用にそれぞれ音声ファイル名のパラメータを用意してあげます。
これで「Aというエントリーではこの音」、「Bというエントリーではこの音」みたいな使い分けが可能になります。
さて、ここで問題が発生します。
AlertとPlaySoundを連続で実行するとAlertの音声が勝ってしまうのです。
実行する順番は関係ありません。PlaySound→AlertでもAlert→PlaySoundでも同じです。
AlertとPlaySoundを併用する方法
この問題を回避する方法をお伝えいたします。
とっても簡単です。
MT4の「ツール」-「オプション」-「音声設定」を開き、「Alert」の部分をダブルクリックしてください。
そうすると、上図のように赤い×マークが表示されます。Alertの音声を無効化したことになります。
これで、アラートポップアップを表示しつつPlaySoundによるオリジナル音声を出力できるようになります。
あるいは、上図の「有効にする」のチェックを外してしまうかですね。オリジナル音声以外は要らないという人にはこちらの方が手っ取り早いです。
ちなみに、音声ファイルはwav形式でなければなりません。mp3形式ではダメなのでご注意ください。
最後に余談ですが、オリジナル音声を音ではなく声(言葉)にしたいという人は、「CMAN」を使ってみてはいかがでしょうか?
機械的なしゃべり方ですが、「今が決済のタイミングだよ♪」とかしゃべらせると親近感わきますよ(笑)