尝试使用 Microsoft.Xna.Framework 将 wma 文件加载为 SoundEffect 时发生 InvalidOperationException

Posted

技术标签:

【中文标题】尝试使用 Microsoft.Xna.Framework 将 wma 文件加载为 SoundEffect 时发生 InvalidOperationException【英文标题】:InvalidOperationException occured when trying to load wma file as SoundEffect using Microsoft.Xna.Framework 【发布时间】:2013-02-08 12:07:18 【问题描述】:

尝试将 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!

【问题讨论】:

【参考方案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 库。

【讨论】:

以上是关于尝试使用 Microsoft.Xna.Framework 将 wma 文件加载为 SoundEffect 时发生 InvalidOperationException的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用堆叠小部件构建布局

尝试使用 Curl 登录网站

不安全的 JavaScript 尝试使用框架访问

当我尝试使用 ansible ping 我的 VM 时,它会尝试 ping 服务器 ID 而不是 IP

尝试使用 ConfigurationBuilder 但得到 FileLoadException

尝试使用 Jquery 更改 HTML [重复]