2010-11-04 102 views
0

我可以使用SoundEffectInstance播放wav文件,但我无法找到任何方法在手机上使用这些库播放压缩音频。如何在Windows Phone 7上使用SoundEffects的压缩音频?

我发现用XNA做这件事的方法是使用XACT创建工具,如here所示,但AudioEngine,WaveBank和SoundBank类没有在手机上提供,据我所知。通过各方面的资源,我发现我已经看到了使用内容装载机人直接加载到音效:

SoundEffect soundEffect = Content.Load<SoundEffect>(@"Content\Audio\LaserShot"); 
soundEffect.Play(); 

,但我似乎无法得到这工作的。

在我看来,一定有办法做到这一点,因为所有的声音效果都是未压缩的,wav的有点荒谬。

回答

1

您需要将未压缩的文件添加到您的内容项目中。内容管道可以单独压缩它们,让您将它们加载为SoundEffect(与加载Texture2D的方式相同)。默认设置是未压缩的(“最佳”),但您可以将其设置为使用有损压缩(“低”或“中”),以获得非常好的压缩比。

有一个newer answer of mine here包含更多的信息和详细的说明。

+0

我无法弄清楚如何设置内容管理器,因为我的类不是从基本的XNA游戏类派生的。 – DShook 2010-11-04 23:21:37

+0

我对另一个问题的回答http://stackoverflow.com/questions/2863575#2873609可能会有所帮助。基本上:WinForms示例(http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1)具有用于设置GraphicsDevice和ContentManager而不需要“Game”的代码。 – 2010-11-05 01:04:19

+0

我必须创建一个窗体,GraphicsDeviceService和ServiceContainer来初始化仅加载音频的内容管理器吗? – DShook 2010-11-05 06:11:25