2011-12-24 88 views
1

我想在C#中設置媒體元素的來源。這是我在做什麼在windows phone 7中設置MediaElement的源代碼?

XAML部分

<MediaElement x:Name="Sound" AutoPlay="False" /> 

<Button Content="Shout!" Height="123" Name="button2" Width="123" Click="shout_Click" /> 

C#部分

private void shout_Click(object sender, RoutedEventArgs e) 
     { 
      this.Sound.Source = new Uri("Sounds/fusrodah.wma", UriKind.Relative); 
      this.Sound.Play(); 
     } 

以上不起作用。但是,如果我在xaml中手動設置路徑,它將起作用。我怎樣才能在C#中設置一個MediaElement的源代碼?

回答

2

你有錯誤嗎?還是隻是不玩?嘗試添加正斜槓,Dovahkiin:

this.Sound.Source = new Uri("/Sounds/fusrodah.wma", UriKind.Relative); 
+0

我試過了,它只是不玩。拋出沒有錯誤,什麼都沒有。 PS:我猜你已經知道我正在製作的應用類型;) – deztructicus 2011-12-25 00:06:28

+0

將MediaFailed事件附加到mediaplayer。 'Sound.MediaFailed + = new EventHandler (Sound_MediaFailed);'檢查這個事件是否被調用並且它包含的消息。 – keyboardP 2011-12-25 00:10:45

+0

我是這麼做的。它沒有失敗。它只是沒有玩它。然而我剛剛發現,如果我在play()函數之前放置一個斷點並等待3秒鐘,它就會播放。也許它通過該代碼超速?有沒有辦法讓我的代碼「睡眠」? – deztructicus 2011-12-25 01:04:59