【问题标题】:Windows phone 8 xaudio2 wav file issueWindows phone 8 xaudio2 wav 文件问题
【发布时间】:2013-11-21 15:15:00
【问题描述】:

我想用 XAudio2 播放一个 wav 文件,我在互联网上搜索过一些示例项目,例如:C# XAudio2 Sound Playback for Windows Phone 或这个:Play wav example 但是所有播放特殊 wav 文件的人,如果我替换我的 wav(转换到 MS ADPCM,单声道)然后 CreateSourceVoice 返回 HRESULT 0x88960001。那么这些 wav 文件有什么特别之处呢?或任何其他使用 xaudio2 播放 Wav 文件的方法(我正在使用 windows phone 8)

【问题讨论】:

    标签: windows-phone-8 wav xaudio2


    【解决方案1】:

    根据这篇文章,XAudio2 只支持 MS ADPCM 格式的一个子集: http://msdn.microsoft.com/en-us/library/windows/desktop/ee415711(v=vs.85).aspx

    您必须使用 Windows 8 SDK 中的 adpcmencode 工具将其压缩成可用的东西

    【讨论】:

    • 非常感谢,我花了一整天的时间才弄清楚发生了什么,现在解决了!再次感谢你;)
    【解决方案2】:

    所以播放音效和背景音乐的标准方法是使用 XNA 库。

    我在playing async sound in the windows phone 上写了一篇非常直截了当的博文

    基本上就是这么说的

    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Media;
    using Microsoft.Xna.Framework;
    
    static Stream stream1 = TitleContainer.OpenStream("soundeffect.wav");
    static SoundEffect sfx = SoundEffect.FromStream(stream1);
    static SoundEffectInstance soundEffect = sfx.CreateInstance();
    
    public void playSound(){
        FrameworkDispatcher.Update();
        soundEffect.Play();
    }
    

    没有比这更容易的了。要获得特定的 wav 要求,请查看 MSDN page for supported formats

    我还在我的博文中发布了一个可供下载的工作解决方案。

    祝你好运!

    【讨论】:

    • 感谢您的快速回复,但 XNA 似乎不再开发,我无法使用 NuGet 将 XNA 添加到我的 windows phone 8 项目中:-(
    • 是的,您可以...您只需添加对它的引用。
    • XNA 不再由微软开发,但您仍然可以使用这些库。这没有什么问题。
    猜你喜欢
    • 2015-03-23
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多