音楽ファイル読み込み 不具合報告
ミツゴロウ 2014/12/01(Mon) 19:07
現在音楽プレイヤーを作っている最中で、様々な形式の音楽ファイルを開いて再生できるようにしていたのですが、なぜかwma形式とm4aのファイルでプログラムが落ちることが発覚しました。
それも、10個程度読み込んだだけで落ちてしまいます。
ソースコード例
# include <Siv3D.hpp>
void Main() {
const Font font(30);
const Sound s1(L"01 トラック 1.wma");
const Sound s2(L"02 トラック 2.wma");
const Sound s3(L"03 トラック 3.wma");
const Sound s4(L"04 トラック 4.wma");
const Sound s5(L"05 トラック 5.wma");
const Sound s6(L"06 トラック 6.wma");
const Sound s7(L"07 トラック 7.wma");
const Sound s8(L"08 トラック 8.wma");
const Sound s9(L"09 トラック 9.wma");
const Sound s10(L"10 トラック 10.wma"); // 単純に10個読み込む
while (System::Update()) {
font(L"10個読み込むだけ").draw();
s1.play();
}
}
・m4aでも同じことが起きます。
・2個や3個だけなら動くことがありますが、数が増えるとエラーメッセージ吐かずに動かなくなってしまいます。ウィンドウの×ボタンも効かなくなります。
・途中で音楽データをReleaseしても関係なしでした。
・落ちてしまってたときは、CPU使用率が0〜5%しか動いていないので、処理落ちが原因ではない(添付画像1)。ogg形式を100個読み込んだときはしっかりと処理されるためCPU使用率が最大になっていた。落ちると図の画面から全く動かなくなります。
・自分で作曲したもの、他大学のDTMサークルからもらったもの、市販されているCDをPCに取り込んだものなどさまざまなファイルで試してみたが、すべてダメでした。
・プロパティの画像を添付しましたが、(添付ファイル2)とくにおかしいところはないと思われます。
・MP3やogg、wav形式では問題なく起動でき、
oggファイルでは100個読み込んでも大丈夫だったため、メモリ容量の問題ではないと思われます。
・PCを再起動したり、Siv3Dを入れなおしても問題は起きました。Siv3Dのバージョンは最新のNovember 2014です。
以上が不具合報告です。制作者様、ご確認ください。
Reputeless 2014/12/01(Mon) 22:30
ご報告ありがとうございます。
手元の環境で 20 個の .m4a, .wma を読み込むテストを行いましたが、報告された現象を再現できませんでした。
ミツゴロウさんの環境で May 2014 v2 だと問題は発生しますでしょうか?
今後、こちらでも環境を変えて検証し、問題を発見できた場合はご連絡します。
これをご覧になったユーザの方で再現された方がいれば、
OS 名、Siv3D バージョンとともに、ご報告に協力をお願いします。
また、Sound はメモリを大きく消費するため、効果音など即時再生が必要な小さな音声を除き、再生の直前までロードせず、不要になったらリリースすることをおすすめします。
将来的にはストリーミングや非同期のロードといった機能を実装する予定です。
こうじろう 2014/12/03(Wed) 11:42
お世話になっております。
November 2014に変更後、同様の現象が確認されましたので、ご報告致します。
私の場合は同じ音楽ファイルをソース内で3回読み込んでおります。
ブレークポイントで確認していったところ、.m4aを読み込む1回目もしくは2回目のところで動かなくなります。
(エラーメッセージなどは特に出ておらず、処理落ちでもなさそうです。)
.mp3と.wavの場合は正常に動作しました。
May 2014 v2では、.m4a、.mp3、.wavともに正常に動作しております。
OSはWindows7 SP1 64bit、November 2014インストール前に
Visual Studio 2013 Update 4をインストール致しました。
以上、ご報告になります。
ご確認のほど宜しくお願い致します。
ミツゴロウ 2014/12/04(Thu) 17:29
ミツゴロウです。
先ほどMay2014 v2 で同様の実験をしましたが、問題ありませんでした。
OSはWindows 7 (64bit)でした。作業環境的にはだいたいこうじろうさんと同じです。
問題が発覚したNovenver2014版でも、Windows 8 だと正常に動くのですかね・・・ ?
Reputeless 2014/12/05(Fri) 17:08
ミツゴロウさん、こうじろさん、ご報告ありがとうございます。
November 2014 & Windows 7 でこの問題が発生するようです。
12 月中旬にリリース予定の Siv3D November 2014 v2 で修正します。