バイナリデータをポインタで渡す方法

投稿者: 投稿日:2017/10/07(Sat) 15:29:14 No.1932

 こんにちは、お世話になります。

 「bass.dll」というDLLを使って、素材リストからメモリにファイルを読み込んで、ファイルを再生できないかと考えています。
 それで、下記のようなソースを書いたんですが、うまく動かないようです。
 BASSのエラーコードを取得したところ、41が返ってきてるので、読み込んだデータがおかしいのかもしれないんですが、どうしたらいいかわかりません。
 何か対処法があれば、教えていただけないでしょうか。
 以下、長くなりますが、ソースです。

--------------------

「C:\Windows\media\tada.wav」を素材として利用する

バスを0で初期化する
ストリーム番号は、「tada.wav」でメモリから読み込み
ストリーム番号を表示
[ストリーム番号]をストリーム再生
3秒待つ
[ストリーム番号]を開放
バスを開放する
終了


バスを[ハンドル]で初期化する手順:真偽値
バスは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_Init」)を作る
バスの戻り値型は、真偽値
バスの引数型一覧は、{整数, 整数, 整数, 整数, 整数}
バスを{-1, 44100, 0, [ハンドル], 0}で呼び出して結果とする
結果を返す
終わり

[ファイル名]で〈【ストリームフラグ】として〉メモリから読み込みの手順:整数
もしストリームフラグが無なら
ストリームフラグは、0
もし終わり
ストリームは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_StreamCreateFile」)を作る
ストリームの戻り値型は、整数
ストリームの引数型一覧は、{真偽値, 文字列, 長整数, 長整数, 「System.UInt32」}
音声内容は、素材リストから「tada.wav」を文字列として取得したもの
ファイルサイズは、音声内容のバイト数
audio=ネイティブ参照(型文字列, 内容[音声内容])を作る
ストリームを{○, audio, 0, [ファイルサイズ], [ストリームフラグ]}で呼び出してストリーム番号とする
エラーコード取得
ストリーム番号を返す
終わり

[ストリーム番号]を〈【ストリーム再生フラグ】で〉ストリーム再生の手順:整数
もしストリーム再生フラグが無なら
ストリーム再生フラグは、○
もし終わり
ストリームは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_ChannelPlay」)を作る
ストリームの戻り値型は、整数
ストリームの引数型一覧は、{整数, 真偽値}
ストリームを{[ストリーム番号], [ストリーム再生フラグ]}で呼び出して結果とする
結果を返す
終わり

[ストリーム番号]を開放の手順:真偽値
ストリームは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_StreamFree」)を作る
ストリームの戻り値型は、真偽値
ストリームの引数型一覧は、{整数}
ストリームを{ストリーム番号}で呼び出して結果とする
結果を返す
終わり

バスを開放する手順:真偽値
ストリームは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_Free」)を作る
ストリームの戻り値型は、真偽値
ストリームの引数型一覧は、{}
ストリームを{}で呼び出して結果とする
結果を返す
終わり

エラーコード取得の手順:整数
ストリームは、ネイティブ関数(ファイル名「bass.dll」,関数名「BASS_ErrorGetCode」)を作る
ストリームの戻り値型は、整数
ストリームの引数型一覧は、{}
ストリームを{}で呼び出してエラーコードとする
エラーコードを表示
エラーコードを返す
終わり

--------------------

 以上、よろしくお願いいたします。

▲ページの先頭へ

- WebForum -