MediaPlayer通用Windows应用程序



我开始使用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中播放音频吗?

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

<!-- 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");    

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

在更复杂的场景中,您可能需要查看音频图API。

我不确定这是否是一种糟糕的做法,但如果我预加载媒体,我可以获得即时播放。

类似于伪代码(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();
    }
}

相关内容

  • 没有找到相关文章

最新更新