命令リファレンス 


Ymplayer.resetPlayer

「DirectMusicのON/OFF」と「ファイルの読み込み頻度」をMusicPlayer起動中に変更します。
「DirectMusicのON/OFF」と「ファイルの読み込み頻度」を、ゲーム上から変更したい場合などで使えると思います。

この項目は本来MusicPlayerが起動時に、設定される項目ですが、
「DirectMusicのON/OFF」と「ファイルの読み込み頻度」は起動後でも変更可能です。

現在のMusicPlayerのDirectMusicのON/OFFと、dmの値とを見比べ、
ON/OFFを切り替える必要がある場合、MusicPlayerはMidiデバイスの初期化を行います。

Midiデバイスの初期化をすると、Midiの演奏が停止します。
また、初期化中はMusicPlayerは反応しません。
Oggを再生したまま初期化すると、Oggは鳴り続けますが、
初期化に時間がかかる場合、Oggのテンポが1の時は8秒以上経過するとOggの音が繰り返されてしまいます。
初期化が終わるとOggは本来の再生位置へ戻りますが、初期化する時はOggを停止した方がよいでしょう。

このメソッドを呼び出すと、「YMPPreparation.dat」が書き込まれます。
その結果、このメソッドを呼び出した後に、getPlayerPreparation()でMusicPlayerが準備できたかどうかを調べることができます。

また、このメソッドを呼び出すと、「YMPConfig.txt」の内容が書きかえられます。
つまり、ここの設定が次回起動時でも使用されることになります。

※ MusicPlayerは「YMPPreparation.dat」を1秒に2回の頻度で監視しているので、
  このメソッドが呼び出されてからMusicPlayerが反応するのは少し遅れます。
  この設定は頻繁に変えないと思うので、ファイルの監視頻度は低くてもいいかなと思っています。

書式

resetPlayer(dm, rs)
dm
DirectMusicのON/OFF
0 : 自動(NT系OS:ON 9x系OS:OFF)
1 : ON
2 : OFF
rs
ファイルの読み込み頻度(0〜100)
詳しくは、MusicPlayerの設定を参照してください。

例1

(予め test.mid をTonyuに登録しておいてください)
A, S, D, F キーで設定を変更、Enterキーで設定を反映します。
Z, X キーでMidiの再生・停止ができます。

extends SpriteChar;

$mplayer = new Ymplayer();
$mplayer.getPlayerConfig(); // ファイル読み込み(今までの設定内容がわかる)
dm = $mplayer.getPlayerDirectMusicSW(); // 読み込んだ情報を変数へ代入
rs = $mplayer.getPlayerReadSpeed();     // 
while (1) {
  // 設定を適応
  if (getkey(13) == 1) $mplayer.resetPlayer(dm, rs);      // Enter:設定を適応
  if (getkey(90) == 1) $mplayer.play($se_test);           // Z:再生
  if (getkey(88) == 1) $mplayer.stop();                   // X:停止
  if (getkey(65) == 1) { dm --; if (dm < 0) dm = 0; }     // A:DirectMusicのON/OFF −
  if (getkey(83) == 1) { dm ++; if (dm > 2) dm = 2; }     // S:DirectMusicのON/OFF +
  if (getkey(68)  > 0) { rs --; if (rs <   0) rs =   0; } // D:ファイル読み込み頻度 −
  if (getkey(70)  > 0) { rs ++; if (rs > 100) rs = 100; } // F:ファイル読み込み頻度 +
  
  if      (dm == 0) text1 = "デフォルト設定(NT系OS:ON 9x系OS:OFF)";
  else if (dm == 1) text1 = "ON";
  else if (dm == 2) text1 = "OFF";
  
  text2 = ((rs + 1) * 15) + "ミリ秒毎";
  
  drawText( 80, 100, "DirectMusic          : " + text1 , $clWhite, 12);
  drawText( 80, 130, "ファイル読み込み頻度 : " + text2 , $clWhite, 12);
  if ($mplayer.getPlayerPreparation()) drawText( 80, 160, "MusicPlayer準備中…", $clYellow, 12);
  
  update();
}

戻る