バックグラウンドで再生したいのじゃー その2

今度は、ミュージックライブラリ外のローカルファイルやネットワークファイルを指定すると、再生できない。

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が何者かはちゃんと調べよう…

コメントが許可されていません