昔、HSP2.61時代の時、使っていたソースコードの例です。
HSP3でも使えると思います。多分。
MCIを使う方法です。
対応したフォーマットのスプリッターとデコーダがインストールされている必要ありですが。
//判っている不具合
//MP3は等速以外では再生スピードがおかしい。(CBRでもVBRでも関係なく。)
//WMA・ASF・WMVは再生スピード変更不可。
//↑内蔵しているスプリッタが原因とみられる。
//あと、予め ffdshowなどのデコーダは導入しておくこと。
//以下のDirectShowスプリッターも必要
//FLV Splitter(FLV1,FLV4(VP6FLV4)に対応したものが好ましい。)
//TTA Splitter
//MP4 Splitter(3gp系もOK?)
//などなど…
//下記に記述したレジストリをいじくることで、どの形式でも再生可能になります。
//(勿論、デコーダやスプリッターは必須。)RealPlayer系など
//(いじらなくてもtype mpegvideoとmciに入れれば再生されますが…)
//
//導入ができたらレジストリをいじくる。↓(NT系のOSなら)
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions
//再生したい拡張子を記述しておく
//例:flv MPEGVideo
//例:tta MPEGVideo
//例:mp4 MPEGVideo
//例:3gp MPEGVideo
//MPEGVideoとMPEGVideo2の違いは不明。
//AVIが再生できないときは、
//元のレジストリ:avi avivideo
//変更レジストリ:avi MPEGVideo
//と変えてやるとうまく再生できたり、動作が軽くなったりします。
onexit gosub *e
dialog "mpg;*.avi;*.gif;*.wmv;*.asf;*.vob;*.m2p;*.3gp;*.3g2;*.mp4;*.mp3;*.wma;*.wav;*.flv;*.tta;*.divx;*.vro",16,"動画など"
if stat=0 : end
sdim fname,1024
fname=refstr
mci "open \""+fname+"\" alias f type mpegvideo"
//先ほどレジストリの話をしましたが、mciでtype mpegvideoといれてやると強制的にこれを使用するようになります。
//レジストリはあくまでデフォルト値を変えただけです。
if stat=-1 :dialog "エラーやね〜"
mci "play f repeat"
if stat=-1 : dialog "エラーやね〜"
mci "info f product" : title "再生に"+refstr+"を使用中"
repeat -1
wait 50
loop
*e
mci "stop f"
mci "close f"
end