title: MediaElement doesn't play files from internal memory of device
body: <p>I'm writing a simple app which plays mp3 files with help of MediaElement. My test device has SD card. The problem is that app can play files from SD card but can't do that with the same files from internal memory.</p>
  
  <p>Here are simplified parts of my code:</p>
  
  <ol>
  <li><p>MainPage.xaml</p>
  
  <pre><code>&lt;Page
      x:Class="TestApp.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:local="using:TestApp"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
      mc:Ignorable="d"&gt;
  
      &lt;Page.Resources&gt;
          &lt;DataTemplate x:Key="StorageItemDataTemplate"&gt;
              &lt;TextBlock Text="{Binding File.Name}" /&gt;
          &lt;/DataTemplate&gt;
      &lt;/Page.Resources&gt;
  
      &lt;Grid&gt;
          &lt;ListView
              x:Name="List"
              IsItemClickEnabled="True"
              ItemClick="List_OnItemClick"
              ItemTemplate="{StaticResource StorageItemDataTemplate}" /&gt;
  
          &lt;MediaElement x:Name="Media" /&gt;
      &lt;/Grid&gt;
  &lt;/Page&gt;
  </code></pre></li>
  <li><p>MainPage.xaml.cs</p>
  
  <pre><code>public sealed partial class MainPage : Page
  {
      public MainPage()
      {
          this.InitializeComponent();
      }
  
      protected async override void OnNavigatedTo(NavigationEventArgs e)
      {
          IReadOnlyList&lt;StorageFile&gt; items = 
              await KnownFolders.MusicLibrary.GetFilesAsync();
  
          List.ItemsSource = items.Select(item =&gt; new ItemViewModel(item));
      }
  
      private void List_OnItemClick(object sender, ItemClickEventArgs e)
      {
          var item = (ItemViewModel) e.ClickedItem;
          Media.Source = new Uri(item.File.Path);
      }
  }
  </code></pre></li>
  <li><p>ItemViewModel.cs</p>
  
  <pre><code>public class ItemViewModel
  {
      public StorageFile File { get; private set; }
  
      public ItemViewModel(StorageFile file)
      {
          File = file;
      }
  }
  </code></pre></li>
  </ol>
  
  <p>When the item is clicked in the list, file path is extracted and passed to the MediaElement. Next MediaElement plays the audio.</p>
  
  <p>If the file is in the internal memory then file path will looks like this:
  <code>C:\\Data\\Users\\Public\\Music\\file.mp3</code></p>
  
  <p>And if it is on the SD card:
  <code>D:\\Music\\file.mp3</code></p>
  
  <p>App's manifest has next checked capabilities:</p>
  
  <ul>
  <li><code>Music library</code></li>
  <li><code>Removable storage</code></li>
  </ul>
  
  <p>Where can be the problem?</p>
  
  <p><strong>UPD</strong></p>
  
  <p>After subscribsion to the MediaElement's MediaOnMediaFailed event I've got the next error message:
  <code>MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED : HRESULT - 0x80070005</code></p>
  
  <p><code>0x80070005</code> means <code>Access Denied</code>.</p>