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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0319
よっぴーhspdxfixとBASS Audio Libraryの同時使用2解決


よっぴー

リンク

2020/3/19(Thu) 01:05:56|NO.89752

hspdxfixで描画をするゲームで
BASSを用いたBGMの再生を行いたいのですが、音が流れません。
BASS_ErrorGetCodeでは8が返ってきました(初期化エラー?)

hspdxfixとBASSは同時に使うことはできないのでしょうか



この記事に返信する


リンク

2020/3/20(Fri) 10:12:56|NO.89759

 こんにちは。

 BASSのエラーコード8「BASS_ERROR_INIT」は、BASSが初期化されていないときに出るエラーです。
 BASSを利用する際は、必ず利用前に「BASS_Init」で初期化する必要があります。

 で、本題のhspdxfixと組み合わせた際の動作ですが、hspdxfixをダウンロードして、


#include "hspdxfix.as"

を入れて試してみただけですが、一応問題なさそうでした。

 一応、簡単なプログラムを張っておきますので、何かの参考になれば幸いです。
 内容的には、音声を再生して、再生が終了するまで待機したあと、プログラムを終了するだけのものです。
 なお、プログラム中で利用しているBASSの説明とかは、「bass.chm」を参照してください。
 あと、定数とかは「bass.h」にまとまっているので、定数はそちらで調べることができます。
 それから、今回のサンプルは、エラー処理がやや適当かもしれませんが、ご了承ください。


#include "hspdxfix.as" #include "bass.as" // BASSを初期化して、初期化に失敗したらエラーを表示 ret = BASS_Init(-1, 44100, 0, 0, 0) // エラーだったらその旨を表示して終了する if (ret == False){ ErrorCode = BASS_ErrorGetCode() dialog strf("BASSの初期化に失敗しました。\nエラーコード:%d", ErrorCode), 1, "エラー" end } // 再生したい音声のファイル名を指定 filename = "./test.mp3" // 音声を再生するためのストリームを作る handle = BASS_StreamCreateFile(0, filename, 0, 0, 0) // エラーだったらその旨を表示して終了する if (handle == 0){ ErrorCode = BASS_ErrorGetCode() dialog strf("音声の読み込みに失敗しました。\nエラーコード:%d", ErrorCode), 1, "エラー" end } // 音声を再生 ret = BASS_ChannelPlay(handle, 0) // エラーだったらその旨を表示して終了する if (ret == False){ ErrorCode = BASS_ErrorGetCode() dialog strf("音声の再生に失敗しました。\nエラーコード:%d", ErrorCode), 1, "エラー" end } // 音声の再生終了を待機 repeat status = BASS_ChannelIsActive(handle) if (status == 1 ){ await 10 }else{ break } loop // 作成したストリームを開放する ret = BASS_StreamFree(handle) // BASSを解放する ret = BASS_Free() // プログラムを終了する end

 以上、参考になれば幸いです。



よっぴー

リンク

2020/3/20(Fri) 18:41:26|NO.89768

回答ありがとうございます。

BASS_Initのパラメータを全部省略していたことが原因だったようです。
デフォルトの値が自動で充てられるのかと思ってました。
あと、BASS_ErrorGetCodeの位置がそもそもBASS_Initの後ではなかったようで
https://www.un4seen.com/doc/#bass/BASS_ErrorGetCode.html
↑このページを参考にするとBASS_ERROR_FORMATが返ってきたようです。



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