1

我开始使用 xamarin 开发应用程序,我的解决方案中的项目之一是 UWP。

当有人单击按钮时,我需要在那里播放声音,我正在使用 MediaPlayer 来实现我的目标,并且在 Windows 10(桌面)上它工作正常,但在我的 Windows Mobile 10(Lumia 930)上它以很长的延迟开始(大约 1第二)。

下面我提供我的代码来播放音频源:

MediaPlayer _player = BackgroundMediaPlayer.Current;
_player.SetUriSource(new Uri(String.Format("ms-appx:///Assets/Sound/5s.wav", UriKind.Absolute)));            
_player.Play();

我的问题是:

除了 MediaPlayer,还有其他方法可以在 UWP 中播放音频吗?

4

2 回答 2

1

如果您没有特定理由使用背景音频,则可以仅使用媒体元素在前台播放音频:

<!-- create element in XAML or in code -->
<MediaElement Name="mediaElement" ... />


// Code - set source or reference to stream
MediaElement mediaElement = new MediaElement();
mediaElement.Source = new Uri("msappx:///Media/sound.mp3");    

我还建议查看支持的编解码器列表。

在更复杂的场景中,您可能需要查看Audio Graph API。

于 2016-05-18T22:09:41.070 回答
0

我不确定这是否是不好的做法,但如果我预加载媒体,我可以立即播放。

类似这个例子的伪代码(c# 风格):

class Foo
{
   private MediaPlayer _player;

    Foo() //constructor
    {
      _player = BackgroundMediaPlayer.Current;
      _player.AutoPlay = false;
      _player.SetUriSource(new Uri(String.Format("ms-appx:///Assets/Sound/5s.wav", UriKind.Absolute)));            
    }

    void ButtonClicked(Object sender, EventArgs event)
    {
        _player.Play();
    }
}
于 2016-09-17T18:26:17.903 回答