如果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){//做某事}。
答案 0 :(得分:6)
您可以使用MediaElement
的{{1}}事件来检查媒体何时结束播放..
在XAML中
MediaEnded
在C#代码中
<MediaElement Name="media" MediaEnded="media_MediaEnded" />
事件处理程序看起来像..
media.MediaEnded += media_MediaEnded;
另外,为了检测当前媒体状态,您有一个名为private void media_MediaEnded(object sender, RoutedEventArgs e)
{
// Do your stuff
}
的枚举,您可以通过调用MediaElementState
中的CurrentState
属性来获取此信息。当放入开关时,您可以看到所有的状态。
MediaElement也有MediaElement
事件..当MediaElement的状态发生变化时会触发此事件,您可以将其与CurrentState属性结合使用来检查媒体所处的状态。
在XAML中
CurrentStateChanged
或在C#中
CurrentStateChanged="media_CurrentStateChanged"
您可以使用它来检测媒体的当前状态。希望它有所帮助..
答案 1 :(得分:0)
添加
media.Position = TimeSpan.Zero;
到事件处理程序解决了问题。
答案 2 :(得分:0)
在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;
}
}