MCI関連ということで、HSPには関係ないかもしれませんが、
そもそもプログラムが間違っているかもしれないので質問させて頂きます。
sdim name,300 dialog "mp3",16,"音楽ファイル" name=refstr if stat=0 : end title ""+name mci "open \""+name+"\" alias bgm" mci "set bgm time format milliseconds" onexit *syuryo mci "play bgm" ztime=gettime(7) : alltime=0 *main ;経過時間計算処理 time=gettime(7) deltatime=(time+1000-ztime)\1000 ;1フレームあたりの時間 alltime+=deltatime ;deltatimeの合計時間 ztime=time ;再生時間取得 mci "status bgm position" : alltime2=stat ;上2つの差から誤差を求める deltaalltime=alltime-alltime2 deltaalltime2+=deltaalltime count++ ;結果描画 redraw 0 color 255,255,255 : boxf color 0,0,0 : pos 0,0 mes "現在時間(理論値):"+alltime mes "現在時間(測定値):"+alltime2 mes " 誤差:"+deltaalltime mes " 平均誤差:"+(deltaalltime2/count) redraw 1 wait 1 goto *main *syuryo mci "close bgm" end
このようなソースがあるのですが、平均誤差が少しおかしい数値になってしまいます。
それは曲によってまちまちで、平均誤差が安定することもあれば、
絶対値がだんだん大きくなってしまったりすることがあります。
具体的には、1分半の曲で0.3秒ほどのズレが出てしまいます。
この原因は何なのでしょうか。
しばらく考えているのですが、これといった結論が出てきません。
最初にも書きましたが、もしかしたらMCI関連の問題かもしれません。
もしそうでしたら申し訳ございません。
ぜひよろしくお願いいたします。