2016-01-24 210 views
0

我試圖將所有音樂文件放入列表框並播放選定的文件。在Windows Phone 8.1上播放音樂

下面的代碼是我做的音樂播放,但不幸的是它不播放。誰能告訴我這個錯誤是什麼?

private async void button1_Click(object sender, RoutedEventArgs e) 
{ 
    StorageFolder folder = Windows.Storage.KnownFolders.MusicLibrary; 
    IReadOnlyList<StorageFile> files = await folder.GetFilesAsync(); 

    foreach (var file in files) 
    { 
     MusicProperties music = await file.Properties.GetMusicPropertiesAsync(); 

     listBox2.Items.Add(music.Title);  
    } 
} 

private async void listBox2_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    try 
    { 
     StorageFolder folder = Windows.Storage.KnownFolders.MusicLibrary; 
     IReadOnlyList<StorageFile> files = await folder.GetFilesAsync(); 

     if (files.Count > 0) 
     { 
      var file = files[listBox2.SelectedIndex]; 
      mediaElement1.Source = new Uri(files[listBox2.SelectedIndex].Path); 
      textBlock1.Text = files[listBox2.SelectedIndex].Path; 

      mediaElement1.Play(); 
     } 
    } 
    catch(Exception ex) 
    { 
     textBlock1.Text = ex.Message; 
    } 
} 

回答

0

相反mediaElement1.Source = new Uri(files[listBox2.SelectedIndex].Path);你需要波紋管使用的代碼:

 var fileStream = await file.OpenReadAsync(); 
     mediaElement.SetSource(fileStream, file.ContentType); 
+0

我改變了你所說的代碼,但它仍然不起作用。 :( –

+0

破解它最後 –

+0

@Harishkutty你是怎麼破解它的?你能分享細節嗎? – asitis

0

您需要使用BackgroundMediaPlayer與後臺任務。

MSDN

你可以寫的Windows Phone 8.1的應用程序在後臺播放音頻。這意味着即使在用戶通過按設備上的後退按鈕或開始按鈕離開您的應用後,您的應用仍可以繼續播放音頻。

情景背景音頻播放包括:

長時間運行的播放列表用戶簡要帶來了一個前臺應用程序來選擇,並開始播放列表,用戶之後,預計該播放列表將繼續在後臺播放。

使用任務切換用戶簡要帶來了一個前臺應用程序開始播放音頻,然後切換到使用任務 開關另一個打開的應用程序。用戶期望音頻在 背景中繼續播放。

+0

是的,我正在研究這個,謝謝。 –