Jak přehrát hudbu v .mp3/.Wma v Metro aplikaci

Postup je následovný:

1. Otevřete si VS 2012 for Windows 8

2. Vytvořte nový prázdný projekt – typ Blank App/C#

3. Vložte tento kód do elementu <Grid> v MainPage.xaml

XML
<Grid.ColumnDefinitions>
    <ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
    <RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<MediaElement x:Name="mediaElement" Grid.Column="0" Grid.Row="0" IsMuted="False" Volume="100" AudioCategory="ForegroundOnlyMedia" PosterSource="Assets/Logo.png" RealTimePlayback="False" AutoPlay="True" Height="100" Width="100"></MediaElement>

4. Vložte tento kód třídy MainPage v MainPage.xaml.cs

C#
IRandomAccessStreamWithContentType stream = null;
void OpenSong()
{
    Windows.Storage.KnownFolders.MusicLibrary.GetFileAsync("_.mp3").Completed = (async, status) =>
    {
        if (async.Status == AsyncStatus.Completed)
        {
            StorageFile storageFile = async.GetResults();
            storageFile.OpenReadAsync().Completed = (async2, status2) =>
            {
                if (async2.Status == AsyncStatus.Completed)
                {
                    stream = (IRandomAccessStreamWithContentType)async2.GetResults();
                    this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, PlaySong).Completed = (async3, status3) =>
                    {
                    };
                }
            };
        }
    };
}
void PlaySong()
{
    //-Nastavit pouze vlastnost Source nestačí, pak mi to nechtělo hrát, musí se to přes metodu SetSource
    mediaElement.SetSource(stream, stream.ContentType);
    mediaElement.Play();
}

5. Zavolejte metodu OpenSong() v prázdné metodě OnNavigatedTo(). Pokud ji zavoláte v konstruktoru, nevyhodí se vám žádná chyba ale zvuk vám prostě nebude hrát

C#
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    OpenSong();
}

6. Vytvořte hudební soubor _.mp3 v hudební knihovně W8

7. Povolte v souboru Package.appxmanifest přístup do hudební knihovny

8. Spusťte program a otestujte

Napsat komentář