2015-09-15 14 views
7

Ich versuche dies:Wie spielt man eine .mp3 (oder andere) Datei in einer UWP App ab?

PlayMusic = new MediaElement(); 
      PlayMusic.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.Media; 

      PlayMusic.Source = new Uri(@"C:\Users\UserName\Desktop\C:\Users\user\Desktop\Kill The Alarm - Begin Again.mp3"); 
      PlayMusic.Play(); 

Keine Fehlermeldungen auf dem Display angezeigt (versuchen Sie fangen läuft sauber durch).

Entschuldigung für die kurze Beschreibung ... Ich kann Englisch sehr gut lesen und verstehen, aber es ist schwierig für mich zu sprechen und zu schreiben.

Vielen Dank für Ihre Hilfe und Antwort!

+0

versuchen, die langen Dateinamen Umwickeln einfacher Anführungszeichen oder die Datei umbenannt haben keine Leerzeichen und sehen, ob es funktioniert – MethodMan

+0

keine Änderung auf diese Weise. :/ –

+0

'C: \ Benutzer \ Benutzername \ Desktop \ C: \ Benutzer \ paulk \ Desktop \ Kill Der Alarm - Beginne Again.mp3' ist kein gültiger Pfad, du wiederholst den Teilstring zu deinem Desktop-Ordner. – Dai

Antwort

10

Jede Windows Store App hat drei Ordner. Ein lokaler Ordner, ein Roaming-Ordner und ein Temp-Ordner. Jeder Zugriff erfolgt auf die gleiche Weise. Local ist zum Speichern von Assets in einem lokalen, anwendungsspezifischen Ordner gedacht. Hier

ist die Antwort:

StorageFolder Folder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
       Folder = await Folder.GetFolderAsync("MyFolder"); 
       StorageFile sf = await Folder.GetFileAsync("MyFile.mp3"); 
       PlayMusic.SetSource(await sf.OpenAsync(FileAccessMode.Read), sf.ContentType); 
       PlayMusic.Play(); 

MfG.

0

Registrieren Sie das MediaFailed -Event des MediaElement und überprüfen Sie, ob es ausgelöst wird. Die an die Methode übergebenen ExceptionRoutedEventArgs sollten Informationen darüber enthalten, warum die Datei nicht wiedergegeben werden kann.

+0

Gute Idee, aber kein Fehler –

+0

Versuchen Sie, die Audiodatei in Ihre Lösung aufzunehmen und ändern Sie dann den URI –

+0

PlayMusic.Source = new Uri (@ "ms-appx: //Sleep/Media/KillTheAlarm.mp3"); Keine Änderungen:/ –

4

Sie können nicht einfach jede Datei in Ihrem Dateisystem mit Windows-Store-Anwendungen lesen.

Wenn Sie es nur testen wollen:

  1. Fügen Sie die Datei zu Ihrem Projekt in Visual Studio
  2. Ihre Datei ändern "Build Action" auf "Inhalt".
  3. Ändern Sie "In Ausgabeverzeichnis kopieren" in "Immer kopieren".

Was Sie wahrscheinlich tun möchte, ist im Abschnitt, Lesen Lokale Dateien w/o einen Picker von this article. This könnte auch hilfreich sein.

+0

Yeaaaaah! Vielen Dank! Ich habe es gemacht! (Ich poste die Lösung als Antwort!) –

2

Setzen Sie mySong.mp3 in Ihren Ordner Assets. Klicken Sie dann in Visual Studio mit der rechten Maustaste auf Ihren Ordner "Assets" und wählen Sie "Vorhandenes Element hinzufügen". Fügen Sie mySong.mp3 aus Ihrem Assets-Ordner hinzu. In XAML, fügen Sie einen Spieler:

<MediaElement x:Name="myPlayer" 
AutoPlay="True" /> 

In C#, mySong.mp3 spielen wird, wenn Sie die Quelle gesetzt:

Uri newuri = new Uri("ms-appx:///Assets/mySong.mp3"); 
myPlayer.Source = newuri;