WAVEファイルをDXライブラリでループ再生できない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Praludium

WAVEファイルをDXライブラリでループ再生できない

#1

投稿記事 by Praludium » 11年前

コード:

bool Continues()
{

	if(ScreenFlip()      != 0) return false;
	if(ClearDrawScreen() != 0) return false;
	if(ProcessMessage()  != 0) return false;

	return true;

}

int WINAPI WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR argv, int showsCmd)
{

	// 初期化
	ChangeWindowMode(TRUE);
	DxLib_Init();
	SetDrawScreen(DX_SCREEN_BACK);

	// 音声ファイルの読み込み(foobar.wavは存在するものとする)
	int bgm = LoadSoundMem("./something/foobar.wav");

	// 5000msでループ
	SetLoopPosSoundMem(5000, bgm);

	// 実際に再生する
	PlaySoundMem(bgm, DX_PLAYTYPE_LOOP);

	while(Continues())
	{

		if(CheckHitKey(KEY_INPUT_ESCAPE)) break;

	}

	DxLib_End();
	return 0;

}
以上のコードで何故かループ再生ができません。WAVEファイルはAudacity 2.0.5で書き出したものです。形式のせいなのかと考え、Oggファイルでも試したのですが同じ結果となりました。
何か解決策はありますでしょうか。ご教授ください。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: WAVEファイルをDXライブラリでループ再生できない

#2

投稿記事 by みけCAT » 11年前

手元の環境ではループ再生が出来ました。
とりあえずDXライブラリが最新か確認し、最新でなければ最新にしてみてください。

Windows Vista Home Premium SP2 32ビット
Intel(R) Core(TM)2Duo T8100 @2.10GHz 2.10GHz
RAM 4.00GB
Dev-C++ 5.8.3
GCC(MinGW) 4.8.1
DXライブラリ Ver3.13b
添付ファイル
wave_dx_loop.zip
テスト用データ一式
(2.59 MiB) ダウンロード数: 103 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Praludium

Re: WAVEファイルをDXライブラリでループ再生できない

#3

投稿記事 by Praludium » 11年前

ありがとうございます。

私自身のループに対する理解が間違っていたのが原因でした。
このコードの場合、5000msでWAVEファイルの先頭に戻って再生するものだとばかり思っていました。WAVEファイルの終端に到達したら5000msに戻る、という動作を頂いたコードで確認することができました。

閉鎖

“C言語何でも質問掲示板” へ戻る