0

尝试将 WMA 文件(无 DRM)加载为音效时出现无效操作异常。我的代码:

    public void LoadSound(String SoundFilePath, out SoundEffect Sound)
    {

        Sound = null;

        try
        {
            // Holds informations about a file stream.
            StreamResourceInfo SoundFileInfo = App.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative));

            // Create the SoundEffect from the Stream
            Sound = SoundEffect.FromStream(SoundFileInfo.Stream);
        }
        catch (NullReferenceException)
        {
            // Display an error message
            MessageBox.Show("Couldn't load sound " + SoundFilePath);
        }
    }

错误发生在这一行Sound = SoundEffect.FromStream(SoundFileInfo.Stream)

我可以毫无问题地加载 WAV 文件。我不想将 WMA 文件转换为 WAV,因为原始 WMA 文件大小仅为 352KB,但当转换为 WAV 文件时,其大小增加到 1788KB!

4

1 回答 1

1

您不能在 SoundEffects 中使用 wma 或 mp3 声音。试试这种效果很好的方法:

using Microsoft.Xna.Framework.Media;
...
Song s = Song.FromUri("sound name", new Uri(@"Resources/Alarms/Alarm01.wma", UriKind.Relative));
MediaPlayer.Play(s);

也不要忘记参考Microsoft.Xna.Framework库。

于 2013-02-08T12:23:22.207 回答