2013-07-10 100 views
0

我有2個按鈕,播放和暫停,當我點擊暫停時,音樂停止,當我點擊播放它從頭開始音頻。我想這樣做,就像當我按下Play時,它從我停止的地方恢復。WPF MediaElement如何從暫停的位置繼續播放?

 private void PlayAudio() 
    { 


     McMediaElement.LoadedBehavior = MediaState.Manual; 
     McMediaElement.Source = new Uri("../../SingAlong/Food Fit For A King/old king cole.mp3", UriKind.RelativeOrAbsolute); 
     McMediaElement.Play(); 
    } 

    private void button1_Click_1(object sender, RoutedEventArgs e) 
    { 
     PlayAudio(); 

    } 

    private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     McMediaElement.Pause(); 
    } 

回答

2

PlayAudio()方法重新加載,當你設置Source屬性的媒體文件。這會導致您的對象在您撥打Play()時從頭播放新載入的媒體。相反,在事件處理程序button1_Click_1這樣做,你應該只調用了Play()方法:

private void button1_Click_1(object sender, RoutedEventArgs e) 
{ 
    McMediaElement.Play(); 
} 
+0

是的,可是當我做到這一點,我點擊播放按鈕開始時,它不會播放任何音頻。 – user2376998

+1

所以你想要的是一個按鈕,它有兩個函數,取決於你的對象的狀態。不幸的是,WPF的'MediaElement'沒有屬性讓你檢查它是否正在播放或暫停。你可以自己跟蹤狀態,只在需要時調用'Open()'。我不知道你是如何設置你的對象和它的Source屬性的,但是從你發佈的代碼中,我建議只有當Source屬性爲null時纔打開媒體文件 – Vanlalhriata

0

這個工作對我..

private void button1_Click_1(object sender, RoutedEventArgs e) 
{ 
    McMediaElement.LoadedBehavior = MediaState.Pause; 
} 
private void button2_Click_1(object sender, RoutedEventArgs e) 
{ 
    McMediaElement.LoadedBehavior = MediaState.Play; 
} 
相關問題