2

次のように、SoundEffectsを保存するための辞書を入手しました。

public static Dictionary<string, SoundEffect> Hangok = new Dictionary<string, SoundEffect>();

次のようなファイル(通常の.wav形式)からサウンドをロードします。

GStatic.Hangok.Add(Azonosító, SoundEffect.FromStream(File.OpenRead(Azonosító)));

、ここでAzonosítóはファイル名でした。

1つを除いて、すべて問題なくファイルがロードされます。例外が作成されます:

オブジェクトの現在の状態が原因で、操作は無効です。

、私にとってあまり情報ではありません。誰かがこのエラーメッセージを説明したり、SoundEffect.FromStreamが読み取れない理由を教えてもらえますか?なんで?いつ?回避策?

よろしくお願いします:Péter

4

2 に答える 2

1

ContentManagerを使用してSoundEffectをロードします。wavファイルをコンテンツプロジェクトに配置すると、ロードされるだけです。

例えば

SoundEffect s = Content.Load<SoundEffect>("name");
于 2012-04-17T13:08:22.533 に答える
1

完全ではありませんが、この問題に対する実用的な解決策です。「私の質問に答える」だけです。これは、問題が何であるかを知らない他の開発者にとっても役立つ可能性があるためです。

    try
    {
      GStatic.Hangok.Add(Azonosító, SoundEffect.FromStream(File.OpenRead(Azonosító)));
    }
    catch
    {
      GStatic.Hangok.Add(Azonosító, new SoundEffect(File.ReadAllBytes(Azonosító), 11025, AudioChannels.Mono));
    }

そして、まあ:なぜ通常の方法でそのファイルをロードできないのか、そしてなぜ例外ハンドラーのようにロードできるのかわかりませんでした。モノラルでファイルを持っていることはそれほど大きな問題ではないはずです。誰かが知っているなら、メモ/コメントをドロップしてください。

于 2013-05-12T10:16:15.933 に答える