c# - 如何检查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 == true)
    {
        PlayAudio.Visibility = Visibility.Visible;
        StopAudio.Visibility = Visibility.Collapsed;
    }
}


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

最佳答案

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

在XAML中

<MediaElement Name="media" MediaEnded="media_MediaEnded"  />


用C#代码

media.MediaEnded += media_MediaEnded;


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

private void media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Do your stuff       
}


另外,要检测当前媒体状态,您可以使用一个称为MediaElementState的枚举,您可以通过调用CurrentState中的MediaElement属性来获取此信息。置于开关中时,您可以查看所有状态。

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

在XAML中

CurrentStateChanged="media_CurrentStateChanged"


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


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

关于c# - 如何检查MediaElement是否已停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330295/

相关文章:

c# - 将互操作颜色转换为 System.Drawing.Color

c# - 如何在 C#7 中使用可空引用类型属性

c# - 从 ViewModel 关闭和清理 View

c++ - 如何在编译时检测WP8

windows-7 - Windows Phone 8 SDK 可以在 Windows 7 上运行吗?

c# - 如何将文件和 json 对象从 postman 传递到 asp.net 核心 webapi

c# - 如何解决asp.net core mvc项目中的 "view not found"异常

c# - 有什么办法可以在 x :DataType? 中使用值类型

c# - 如何在Caliburn.Micro ViewModel中处理WPF MenuItem命令?

windows-phone-7 - 在 Azure 上运行应用程序并保护注册