Windows IoT Core无头音频应用

时间:2015-12-26 19:29:25

标签: c# audio windows-10-iot-core

我试图在Raspberry Pi 2上为Windows IoT Core创建无头应用程序,允许从后台任务播放音频。 通常,我会在UI中创建Media Element,但为此我只有后台任务。

当我使用和关注代码播放新音频时

Windows.Media.Playback.BackgroundMediaPlayer.Current.SetUriSource(new System.Uri("http://stream.funradio.sk:8000/fun128.mp3"));

"访问违规消息"的异常被扔了。此外,我尝试创建声明的音频类型的常规后台任务,但调试器返回以下异常:

  

抛出异常:' System.Exception'在InternetRadioHeadless.winmd

是否有任何解决方法如何在UI中没有MediaElement的情况下播放和控制背景音频?

2 个答案:

答案 0 :(得分:0)

您可能需要将音频声明为后台任务类型,如下图所示

enter image description here

答案 1 :(得分:0)

后台任务需要处理OnCanceled事件并关闭BackgroundMediaPlayer!

// Event may raise immediately before continung thread excecution so must be at the end
taskInstance.Canceled += new BackgroundTaskCanceledEventHandler(OnCanceled);

private void OnCanceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
{
    try
    {
        // Shutdown media pipeline
        BackgroundMediaPlayer.Shutdown();
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.ToString());
    }

    deferral.Complete(); // signals task completion. 
}