Windows Universal App中的播放(背景)音频失败

时间:2015-10-04 15:36:35

标签: c# wpf win-universal-app background-audio

我想在UniversalWindowsApp中播放一些音频文件给那些我只有路径的音频文件。这是我目前的代码:

//exception in this line:
var file = await StorageFile.GetFileFromPathAsync(@"C:\Users\myuser\Music\someartist\album\01. Title.mp3");

var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
mediaControl.SetSource(stream, file.ContentType);
mediaControl.Play();

我也试过这段代码:

mediaControl.Source = new Uri(@"C:\Users\myuser\Music\someartist\album\01. Title.mp3", UriKind.RelativeOrAbsolute);

但两个代码都抛出异常如下:

  

访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

它实际上并不位于第一个(意味着它会立即跳转到UnhandledException),因为它会突破到中间一行(从App.g.i.cs / InitializeComponent()复制) :

UnhandledException += (sender, e) =>
{
    if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};

如果我使用msdn中的示例代码,则可以使用:

async private void SetLocalMedia()
{
    var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
    openPicker.FileTypeFilter.Add(".mp3");
    var file = await openPicker.PickSingleFileAsync();

    // mediaControl is a MediaElement defined in XAML
    if (null != file)
    {
        var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
        mediaControl.SetSource(stream, file.ContentType);
        mediaControl.Play();
    }
}

这显然和我期望FileOpenPicker一样 - 一个我不会出现的对话框,因为我已经有了文件路径。

问题是,如何在UniversalWindowsApp中播放某些音频?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要了解Windows应用商店应用https://msdn.microsoft.com/en-us/library/windows/apps/hh967755.aspx

中的文件访问权限和权限