音楽ロード時間の短縮

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

音楽ロード時間の短縮

#1

投稿記事 by ものらす » 15年前

音楽のロード時間が長くて困っています。
普通のmp3ファイルで時間も特に長くなく、長いものでも3分程度です。

しかし、LoadSoundMemでロードすると1,2秒ですが処理が止まってしまいます。
処理が止まるのはごく当然のことかと思いますが、この時間がやはりストレスになります。

LoadSoundMemで起動時にでも全曲ロードしておけば、その後ロードすることも無くなり、処理が止まることもなくなりますが、
現時点で画像もろもろと一曲ロードしただけで、windowsタスクマネージャ(delete,alt,ctrl同時押しで出るやつ)でゲームのメモリ使用量を見ると、
その時点で既に77MBほど使用しています。

一曲ロードしただけでそれなりにメモリを食うこともタスクマネージャでわかりましたし、
全曲あわせると2,30曲にはなると思いますので、起動時に全てロードするというのは、ちょっと無いかと思います。

以前ここの掲示板でメモリについての質問をさせていただいたのですが、
その際管理人様が「自分のゲームはメモリをかなり食ってしまう」というような書き込みをされていました。
そこで龍神録のメモリ使用量を見てみると、それでも7,80MB程度でした。

私は一曲ロードしただけで77MBですし、今後まだ起動時にロードする画像は増える予定です。
なので曲を複数ロードしておくのは、避けたいと思っています。
が…ロード時間が…というように悩んでいるわけです。

ロードしながら再生というストリームという言葉も聴きますし、なんとかロード時間を短くする方法はないか、お聞きしたいです。
そんな方法はなく、やはり自分でロードのタイミングなどを工夫するしかないのでしょうか?


ものらす

Re:音楽ロード時間の短縮

#3

投稿記事 by ものらす » 15年前

こ、こんなのがあったんですか…!
気付かずに申し訳ないです…

ところで、何も書かずにLoadSoundMemを使用した場合は(今までの自分)
デフォルトであるDX_SOUNDDATATYPE_MEMNOPRESSが適用されているということでしょうか?

もし、あるmp3ファイルを読み込んだ後、通常通りのLoadSoundMemの動作に戻って欲しい場合は

int handle;
SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);
handle = LoadSoundMem("kyoku.mp3");
SetCreateSoundDataType(DX_SOUNDDATATYPE_MEMNOPRESS);

と書けばよいということですか?

ru

Re:音楽ロード時間の短縮

#4

投稿記事 by ru » 15年前

>ところで、何も書かずにLoadSoundMemを使用した場合は(今までの自分)
>デフォルトであるDX_SOUNDDATATYPE_MEMNOPRESSが適用されているということでしょうか?
>もし、あるmp3ファイルを読み込んだ後、通常通りのLoadSoundMemの動作に戻って欲しい場合は
>と書けばよいということですか?
そうです

ものらす

Re:音楽ロード時間の短縮

#5

投稿記事 by ものらす » 15年前

ruさん、ありがとうございます。
実装してみたところ、かなり改善が見られました。確かに早かったです。
とても助かりましたm(__)m
ありがとうございました。

閉鎖

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