Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF MediaElement如何从暂停位置恢复播放?_C#_Wpf_Audio_Mediaelement - Fatal编程技术网

C# WPF MediaElement如何从暂停位置恢复播放?

C# WPF MediaElement如何从暂停位置恢复播放?,c#,wpf,audio,mediaelement,C#,Wpf,Audio,Mediaelement,我有两个按钮,播放和暂停,当我单击暂停时,音乐停止,当我单击播放时,音频从头开始。我想这样做,当我按下播放,它从我停止的地方恢复 private void PlayAudio() { McMediaElement.LoadedBehavior = MediaState.Manual; McMediaElement.Source = new Uri("../../SingAlong/Food Fit For A King/old king

我有两个按钮,播放和暂停,当我单击暂停时,音乐停止,当我单击播放时,音频从头开始。我想这样做,当我按下播放,它从我停止的地方恢复

        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();
    }
设置
Source
属性时,您的
PlayAudio()
方法将重新加载媒体文件。这会使对象在调用
play()
时从一开始就播放新加载的媒体。您不应在事件处理程序
按钮1\u Click\u 1
中执行此操作,而应仅调用
Play()
方法:

private void button1_Click_1(object sender, RoutedEventArgs e)
{
    McMediaElement.Play();
}
这对我很有用

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;
}

是的,但是当我这样做的时候,我在开始时点击播放按钮,它不会播放任何音频。所以你想要的是一个按钮,它有两个功能,这取决于你的对象的状态。不幸的是,WPF的
MediaElement
没有允许您检查其是否正在播放或暂停的属性。您可以自己跟踪状态,并仅在需要时调用
Open()
。我不知道您是如何设置对象及其
Source
属性的,但是根据您发布的代码,我建议仅当
Source
属性为空时才打开媒体文件