【问题标题】:Best way to play two audio files simultaneously in Windows Phone 8在 Windows Phone 8 中同时播放两个音频文件的最佳方式
【发布时间】:2012-12-20 00:44:54
【问题描述】:

目前正在研究如何在 Windows Phone 8 中同时播放两个 mp3 或 aac 格式的文件。

目前我正在使用 XNA SoundEffect 类,但它只允许 WAV 文件,不适合通过网络传输。

在研究时,我遇到了 SharpDX,但它似乎主要迎合 .WAV 或一次播放一个文件。

我也发现了这个问题: play two sounds simultaneously in Windows 8 Metro App (C#/XAML) Windows 8 中可以使用多种媒体元素,但我不确定它们是否在 Windows Phone 中 (this question seems to disagree)

任何想法将不胜感激。

更新:不能像我想的那样通过 MediaElement 完成http://msdn.microsoft.com/en-us/library/windowsphone/design/hh202883(v=vs.105).aspx

【问题讨论】:

    标签: c# windows-phone-8 sharpdx


    【解决方案1】:

    解决方案: 你好, 我正在开发一个 WP8 应用程序,我需要同时播放多个声音,我使用了 XNA 框架。这是链接

    http://msdn.microsoft.com/en-us/library/ff842408.aspx

    然后像这样播放你的声音文件...

    SoundEffect Sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("Assets/Sounds/wav/sound.wav", UriKind.Relative)).Stream);
    Sound.Play();
    

    用于循环...

    SoundEffectInstance Sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("Assets/Sounds/wav/sound.wav", UriKind.Relative)).Stream).CreateInstance();
    Sound.IsLooped = true;
    Sound.Play();
    

    注意:文件必须是“.wav”(PCM,8 位或 16 位,8KHz 至 48KHz,单声道或立体声)格式

    【讨论】:

    • 使用 XNA,它不会在 Windows Phone 10 的锁定屏幕下播放(不确定您是否需要它......但其他人想知道)
    【解决方案2】:

    您可以尝试通过 MediaFoundation.MediaEngine 来完成(有关如何在 WP8 上正确初始化它的指南,请参阅“Supported Microsoft Media Foundation APIs for Windows Phone 8”)。在 SharpDX 中有一个 Win8 示例 MediaPlayerApp 可以用作仅播放音频的起点(删除所有 d3d 部分并应用 WP8 指南)。 MonoGameMediaPlayer类中也有使用。

    SharpDX同时播放多个WAV,XAudio2完全可以,SharpDX对XAudio2没有任何限制。

    对于 WP8 CLR 垃圾收集器只有一个巨大的担忧,它在收集时似乎会阻塞所有本机线程,包括像 XAudio2 这样的本机音频线程,这可能会导致音频卡顿。我们对此无能为力,因为这是操作系统和 .NET 线程调度的问题。

    我也对 WP8 实时解码两个 MP3 的能力有些怀疑……如果你有结果,请告诉我们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多