【问题标题】:How do you use compressed audio for SoundEffects on windows phone 7?如何在 windows phone 7 上使用压缩音频进行 SoundEffects?
【发布时间】:2010-11-04 21:15:00
【问题描述】:

我可以使用 SoundEffectInstance 很好地播放 wav 文件,但我找不到任何方法在手机上使用这些库播放压缩音频。

我发现使用 XNA 执行此操作的方法是使用 here 概述的 XACT 创建工具,但据我所知,手机上不提供 AudioEngine、WaveBank 和 SoundBank 类。通过各种资源,我发现有人使用内容加载器直接加载到音效中:

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

但我似乎也无法让它工作。

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

【问题讨论】:

    标签: c# audio windows-phone-7 xna xact


    【解决方案1】:

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

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

    【讨论】:

    • 我不知道如何设置内容管理器,因为我的类不是从基本 XNA 游戏类派生的。
    • 我对另一个问题stackoverflow.com/questions/2863575#2873609 的回答可能会有所帮助。基本上:WinForms 示例 (create.msdn.com/en-US/education/catalog/sample/…) 包含无需 Game 即可设置 GraphicsDevice 和 ContentManager 的代码。
    • 我必须创建一个表单、GraphicsDeviceService 和 ServiceContainer 来初始化内容管理器以仅加载音频?
    • 啊 - 如果您没有加载任何与图形相关的内容,您应该能够只传入 ServiceContainer 而不需要其中的 IGraphicsDeviceService-implementing 对象(因此您不需要形式)。实际上,您可以编写一个基本上空白的 IServiceProvider 实现。
    • 好吧,我让它编译,但现在我无法让它找到要加载的任何文件。我尝试将 wav 文件放在不同的目录中,在解决方案本身中,也尝试加载由 XACT 创建的 .xap 文件。为什么这如此困难,为什么没有任何文档可以做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2011-04-30
    • 2012-06-25
    • 2012-12-30
    相关资源
    最近更新 更多