// sample04.hsp ループ再生 (HSP自前処理) #include "hspdsp.as" dsp_Init ; 初期化 dialog "*",16,"メディアファイル" if stat=0:end // システム標準のレンダラーで開く dsp_Open refstr,OPEN_DEFAULT_RENDERER,0,0,0 onexit *exit ; 終了時開放するため dsp_SetEvHWND hwnd ;イベントがメッセージとして通知されます。 oncmd gosub *change,WM_GRAPH_NOTIFY ;イベント通知 dsp_Play hwnd,0,0,640,480 ; 0,0 座標に 640x480 の大きさで表示 stop *exit dsp_Close ; メディアファイルを閉じる dsp_Exit ; 開放 end *change // 自前で処理する場合は dsp_GetStopped()を使ってイベントID をとります。 // この際、- 値に変わるまでループしてください。(取りこぼしを防ぐため。) repeat tmp=dsp_GetStopped() ;tmp に イベントID が入ります。 if tmp<0:break ;値が - を返すまでループ // 1 はグラフの再生が終了したときに返ります。 if tmp=1:dsp_SetSeek 0:dsp_play2 ;位置を0まで戻して再生 //せっかくなのでイベント内容を見る sdim tt,128 dupptr tt,dsp_getmediaevstr(tmp),128,2 title ""+tmp+":"+tt loop return