如何检查MediaElement是否已停止?

1 c# xaml mediaelement windows-phone-8

如果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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找像这样的伪代码:if(AudioPlayer.Stoped == true){//做某事}.

Kas*_*oda 8

您可以使用MediaElementMediaEnded事件来检查媒体播放的时间.

在XAML中

<MediaElement Name="media" MediaEnded="media_MediaEnded"  />
Run Code Online (Sandbox Code Playgroud)

在C#代码中

media.MediaEnded += media_MediaEnded;
Run Code Online (Sandbox Code Playgroud)

事件处理程序看起来像......

private void media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Do your stuff       
}
Run Code Online (Sandbox Code Playgroud)

另外,为了检测当前媒体状态,你有一个枚举被调用,MediaElementState你可以通过调用当放入一个开关中的CurrentState属性MediaElement来看到所有状态.

MediaElement也有一个CurrentStateChanged事件..当MediaElement的状态发生变化时会触发此事件,您可以将其与CurrentState属性结合使用来检查媒体所处的状态.

在XAML中

CurrentStateChanged="media_CurrentStateChanged"
Run Code Online (Sandbox Code Playgroud)

或者在C#中

media.CurrentStateChanged += media_CurrentStateChanged;


private void media_CurrentStateChanged(object sender, RoutedEventArgs e)
{
    switch (media.CurrentState)
    {
        case MediaElementState.AcquiringLicense:
            break;
        case MediaElementState.Buffering:
            break;
        case MediaElementState.Closed:
            break;
        case MediaElementState.Individualizing:
            break;
        case MediaElementState.Opening:
            break;
        case MediaElementState.Paused:
            break;
        case MediaElementState.Playing:
            break;
        case MediaElementState.Stopped:
            break;
        default:
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

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