[MQL] 音声ファイルの再生方法

MQLで音声ファイルを再生したい場合のプログラムの書き方を説明します。

音声ファイルの再生

MQLでは、任意の「wavファイル」を呼び出して再生することができます。

例えば「特定のレートに価格が到達した時」や「何かの操作をした時」などに音を鳴らすことで、インジケーターやEAの利便性を上げられる場合があります。煩わしくならない程度に軽く音を出す程度がベターです。

なお、再生できるのはwav形式ファイルのみです。他の形式(mp3など)は再生できません。

音声ファイルの保存場所

再生したいwavファイルはC:¥Program Files (x86)¥〇〇MT4¥Soundsに保存します。(下図)

wavファイルの保存場所

↑MT4のデフォルトの音声ファイルがいくつか保存されています。ここに再生したいwavファイルを保存します。

「データフォルダを開く」で開かれるフォルダとは場所が全く異なりますのでご注意ください。間違えないように、素直にCドライブから順にたどっていくのをおすすめします。

音声ファイルの再生方法

音声ファイルはPlaySound()で再生できます。PlaySound()関数は、上で説明したフォルダ内にあるwavファイルを呼び出す関数です。書き方は以下の通り。

PlaySound("ファイル名");

引数の「ファイル名」には、example.wavのように拡張子まで含めて書きます。

音声ファイルを再生するサンプルコード

サンプルコードを用意しました。下記コードは、ティックを受信するたびにAlert2.wavを再生します。

//+------------------------------------------------------------------+
//|                                             playsound_sample.mq4 |
//|                                                     minagachi FX |
//|                                            https://minagachi.com |
//+------------------------------------------------------------------+
#property copyright "minagachi FX"
#property link      "https://minagachi.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(){
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   string file_name = "alert2.wav";
   PlaySound(file_name);
   return(rates_total);
}
//+------------------------------------------------------------------+

Alert2.wavはSoundsフォルダにデフォルトで入っているファイルです。

まとめ

MQLで任意の音声ファイルを再生する方法を説明しました。

ファイルの保存場所さえわかれば、PlaySound()で呼び出すだけです。

では。

コメント

この記事へのコメント(0 件)