C# 如何检查MediaElement是否已停止?

C# 如何检查MediaElement是否已停止?,c#,xaml,windows-phone-8,mediaelement,C#,Xaml,Windows Phone 8,Mediaelement,我需要检查MediaElement是否在此时停止或播放。 这是我的代码: private void PlayAudioClick(object sender, RoutedEventArgs e) { AudioPlayer.Play(); StopAudio.Visibility = Visibility.Visible; PlayAudio.Visibility = Visibility.Collapsed; if (AudioPlayer.Stoped ==

我需要检查MediaElement是否在此时停止或播放。 这是我的代码:

private void PlayAudioClick(object sender, RoutedEventArgs e)
{
    AudioPlayer.Play();
    StopAudio.Visibility = Visibility.Visible;
    PlayAudio.Visibility = Visibility.Collapsed;
    if (AudioPlayer.Stoped == true)
    {
        PlayAudio.Visibility = Visibility.Visible;
        StopAudio.Visibility = Visibility.Collapsed;
    }
}

我正在寻找类似这样的伪代码:if(AudioPlayer.Stoped==true){//do something}。

您可以使用
MediaElement
MediaEnded
事件检查媒体何时结束播放

在XAML中

<MediaElement Name="media" MediaEnded="media_MediaEnded"  />
事件处理程序看起来像

private void media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Do your stuff       
}
另外,要检测当前媒体状态,您有一个名为
MediaElementState
的枚举,您可以通过调用
MediaElement
中的
CurrentState
属性来获取该枚举。当将其放入交换机时,您可以看到所有状态

MediaElement还有一个
CurrentStateChanged
事件。。当MediaElement的状态发生更改时触发此事件,您可以将此事件与CurrentState属性结合使用,以检查媒体处于何种状态

在XAML中

CurrentStateChanged="media_CurrentStateChanged"
或者用C#


您可以使用它来检测媒体的当前状态。。希望对您有所帮助。

您可以使用
MediaElement
MediaEnded
事件来检查媒体何时结束播放

在XAML中

<MediaElement Name="media" MediaEnded="media_MediaEnded"  />
事件处理程序看起来像

private void media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Do your stuff       
}
另外,要检测当前媒体状态,您有一个名为
MediaElementState
的枚举,您可以通过调用
MediaElement
中的
CurrentState
属性来获取该枚举。当将其放入交换机时,您可以看到所有状态

MediaElement还有一个
CurrentStateChanged
事件。。当MediaElement的状态发生更改时触发此事件,您可以将此事件与CurrentState属性结合使用,以检查媒体处于何种状态

在XAML中

CurrentStateChanged="media_CurrentStateChanged"
或者用C#

您可以使用它来检测媒体的当前状态。。希望对您有所帮助。

添加

media.Position = TimeSpan.Zero;
到事件处理程序解决问题

添加

media.Position = TimeSpan.Zero;

到事件处理程序解决问题

在Xamarin的MediaElement中找不到CurrentStateChanged

另一种方法是附加PropertyChanged事件,然后检查更改:

videoPlayer.PropertyChanged += VideoPlayer_PropertyChanged;
private void VideoPlayer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            switch (videoplayer.CurrentState)
            {
                case MediaElementState.Playing:
                    break;
                case MediaElementState.Stopped:
                    break;
            }
        }

在Xamarin的MediaElement中找不到CurrentStateChanged

另一种方法是附加PropertyChanged事件,然后检查更改:

videoPlayer.PropertyChanged += VideoPlayer_PropertyChanged;
private void VideoPlayer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            switch (videoplayer.CurrentState)
            {
                case MediaElementState.Playing:
                    break;
                case MediaElementState.Stopped:
                    break;
            }
        }

还有别的办法吗?我的mediaelement没有启动这些事件还有其他方法吗?我的mediaelement没有触发这些事件