尝试使用 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的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试使用 ansible ping 我的 VM 时,它会尝试 ping 服务器 ID 而不是 IP