尝试加载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!

最佳答案

您不能在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 库。

关于c# - 尝试使用Microsoft.Xna.Framework将WMA文件加载为SoundEffect时发生InvalidOperationException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14772220/

10-16 08:04