今度は、ミュージックライブラリ外のローカルファイルやネットワークファイルを指定すると、再生できない。
Windows 10 Universal App File/Directory Access
なるほど。セキュリティーに起因するものとのこと。
フォアグラウンドではファイルピッカーで選んでいても、再生するプロセスは別なので、アクセス権がないってことのようで。
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
ValueSet msg = new ValueSet();
msg.Add(“PlaySingle”, file.Path);
BackgroundMediaPlayer.SendMessageToBackground(msg);
}
バックグラウンドプロセス側で別途設定するらしい。
case "PlaySingle":
{
MediaPlaybackList list = new MediaPlaybackList();
StorageFile file = await StorageFile.GetFileFromPathAsync(valueSet[key].ToString());
global::Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(file);
var media = MediaSource.CreateFromStorageFile(file);
list.Items.Add(new MediaPlaybackItem(media));
mediaPlayer.AutoPlay = false;
mediaPlayer.Source = list;
mediaPlayer.Play();
}
break;
StorageApplicationPermissionsが何者かはちゃんと調べよう…