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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0505
otoya33Dmm系命令でエラー発生。ご助言お願いします。 7解決


otoya33

リンク

2019/5/5(Sun) 20:00:45|NO.87250

初めて投稿させていただきます。

芝居の音響でパソコンからの音出しソフトを作っています。
プログラムも初めてで、最初はmm系で次にMCI系で作り、その都度こちらの掲示板を
拝見しながら、作っています。

今回やはりMCIの反応が気になり、mmに戻ろうかと考えていましたら、Dmmを見つけて
飛びつきました。何とか形を作って、実行ファイルを作りました。
しかし、起動すると、「#Errir 38 →内部エラーが発生しました(38)」のメッセージが出て
起動しません。
エラー38は外部DLLの呼び出しに失敗と有りましたので、「hspogg.as」の読み出しかと、
自分なりに調べましたが解決できず投稿しました。

投稿用のサンプルを作りました。


#include "hspogg.as" //DMM用 dmmini //DMM用 dmmload dir_exe+"\\sample\\demo\\oot06.ogg",1:dmmplay 1


サンプル音はoggですが、私はwavデータを使用しています。

<状況です>
1、スクリプトエディター上ではエラーなしで音が鳴ります。(実行ファイルでエラー)
  ただ、スクリプト上でも時々エラー29が出ていましたが、一応付け加えておきます。
2、hspogg.asは hsp351>common の中にあります。
3、hspのバージョンは、本日最新にして試しましたが、結果は同じです。
4、試しに、別のパソコンで試しましたが、状況は同じです。


よろしくお願いします。



この記事に返信する


リンク

2019/5/5(Sun) 20:43:56|NO.87251

>DLLの呼び出しに失敗
読み出したいのはhspogg.dllですので
一番簡単なのは実行ファイルと同じ場所にそれをコピーしてやれば良いと思います



otoya33

リンク

2019/5/5(Sun) 21:08:48|NO.87252

撃様
ありがとうございます。
hspogg.dll実行ファイルと同じ場所にコピーですね。同じ場所とは、
例えば出来ているhsptmpと同じホルダーにコピーとの意味でしょうか。
この方法は思いつきませんでした。
早速やってみました。エラーは出ませんでしたが、残念ながら音が出ないようです。
同じ場所にコピーの意味が違うのかもしれませんので、mes 等入れてどこで止まっているか
確認してみます。



沢渡

リンク

2019/5/5(Sun) 21:17:21|NO.87253

音が出ないのは、dir_exeの指しているフォルダが実行ファイル(exeファイル)のある
フォルダに変わっていて、oggファイルが正しく参照できていないからではないでしょうか?
oggファイルを実行ファイルと同じフォルダにコピーして、dmmloadの部分を
dmmload "oot06.ogg"
としたらどうでしょうか。



otoya33

リンク

2019/5/5(Sun) 21:18:07|NO.87254

撃様

ファイルを実際データのフルパスで指定すると、再生ができました。
初歩的なことなのでしょうが、私にはそうなんだ でした。
ありがとうございました。



otoya33

リンク

2019/5/5(Sun) 21:27:09|NO.87255

沢渡 様

はい、データー添付しないで説明しようと思ったのがダメでした。
知らないのに小技を使ってしまいました。

ありがとうございます。

初めての掲示板でしたが、目から鱗です、今後音出しはDmmで曲の時間取得をMCIでと
思っています。今後もお世話になることと思います。よろしくお願いします。



ドナルド マクドナルド

リンク

2019/5/5(Sun) 22:40:14|NO.87256

フルパスで指定すると互換性ゼロになるから相対にしない



リンク

2019/5/6(Mon) 00:00:42|NO.87257

余計だったらすみませんが時間取得Dmmでできますよ

#include "hspogg.as" //DMM用 dmmini //DMM用 dmmload dir_exe+"\\sample\\demo\\oot06.ogg",1 //exeと同じフォルダにサウンド置く場合は dmmload "oot06.ogg",1でよい dmmloop 1,-1 //ループしない dmmplay 1 repeat redraw 0 color:boxf dmmstat time1,1,$100 //再生位置取得 dmmstat time2,1,$101 //全体時間取得 color 255,255,255 pos 0,0:mes "生データ:"+time1+"/"+time2 pos 0,20:mes "整形済み:"+strf("%02d",int(time1)/60)+":"+strf("%02d",int(time1)\60)+"/"+strf("%02d",int(time2)/60)+":"+strf("%02d",int(time2)\60) redraw 1 await 16 loop



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