HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0323
GrapeColor(DION)MCIで音楽を続けて読み込む場合4解決


GrapeColor(DION)

リンク

2012/3/23(Fri) 21:04:07|NO.45555

音声ファイルを読み込み、その後別の音声ファイルを読み込む時なんですが、

open "最初の音声ファイルのファイルパス" alias easyaudio

play easyaudio

stop easyaudio

seek easyaudio to start

open "次の音声ファイルのファイルパス" alias easyaudio

の順番でコマンドを送ると最初の音声ファイルが再生されてしまいます。

次の音声ファイルを開く前に一旦デバイスを閉じてしまえば問題ないのですが、
どうも引っかかるので、何故こうなるのか教えていただけませんか。



この記事に返信する


TMKL

リンク

2012/3/23(Fri) 22:54:26|NO.45558

最初のopenで「最初の音声ファイル」を「easyaudio」という名前で開いてますから、
次のopenでは「次の音声ファイル」に「easyaudio」という名前が付けられず、
mciの中でエラーが起こってます


mciでエラーが起こってもHSPは止まりませんから、そのままではエラーがわかりづらいです


作成中は、mci系のすぐ下に

dialog stat
といれて、正常な動作をしているか確認する必要があります
エラーなら、-1などが返ってきます



TMKL

リンク

2012/3/23(Fri) 22:56:15|NO.45559

↑ちがうかも!
しったかですみません



MillkeyWeler

リンク

2012/3/24(Sat) 04:22:34|NO.45564

TMKL さんのやり方で、エラー判別は、あってますよー^^

ですが、GrapeColor さん、OPEN したファイルを一旦閉じて、新しいのをオープンさせるか
エイリアスを変更しましょう。

以下はサンプルです。ぐちゃぐちゃなソースですが、WinAPI にて、エラーの原因の説明をわかるようにしてありますので
どんな原因なのか判別できないときに使ってみてくださいね。

#module MCI_SYSTEM #uselib "Winmm.dll" #func mciSendString "mciSendStringA" sptr,var,int,int #func mciGetErrorString "mciGetErrorStringA" int,var,int #deffunc mcireset alloc Media_Buffer,32768 alloc Media_ErrStr,32768 Media_Buffer="" mcirflag=1 // oncmd gosub *MCI_CALLBACK,0x03B9 dim mciload_buff,65535 return #deffunc mci2 str p1 if mcirflag=0 : mcireset mcierr=0 mciSendString p1,Media_Buffer,32765,hwnd stat_str=""+p1+" = "+Media_Buffer+" = stat "+stat+" / " if stat=0 : return_mode=0 : ims="コマンド成功" : else : return_mode=-1 : ims="コマンド失敗" : mcierr=1 mes ""+stat_str+ims if mcierr=1 : mciGetErrorString stat,Media_ErrStr,32768 : mes "エラー : "+Media_ErrStr return return_mode #deffunc mciallclose onexit mciSendString "close all wait",Media_Buffer,32765,hwnd mes "close all ending. = "+Media_Buffer+" = stat "+stat return #global font "MSゴシック",12 mci2 "open err.wav alias easyaudio" ;←自身でファイルパスを指定してね。 mci2 "play easyaudio" mci2 "open err.wav alias easyaudio" ;↑で指定したファイルと同じにしてみてね



GrapeColor(DION)

リンク

2012/3/24(Sat) 16:12:00|NO.45570

なるほど。
そういうことだったんですね。
皆さん有難うございました。



ONION software Copyright 1997-2021(c) All rights reserved.