媒体元素的奇怪行为

时间:2013-10-29 09:26:42

标签: c# wpf xaml mediaelement

我正在制作一个具有基本功能的媒体播放器,但是在出现异常后点击暂停播放或停止按钮时出现奇怪的行为'System.NotSupportedException'附加信息:除非将LoadedBehavior或UnloadedBehavior设置为Manual,否则无法控制媒体

必需的代码和xaml如下:

XAML:

<MediaElement x:Name="VideoPreview" LoadedBehavior="Manual"  UnloadedBehavior="Stop" Width="auto" Height="250"  MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded" Source="{Binding SelectedItem.SourceUri, ElementName=VideoList}" Margin="5,5,5,5" Stretch="Fill"/>

代码背后:

void OnMouseDownPlayMedia(object sender, MouseButtonEventArgs args)
{         
    VideoPreview.Play();
}

// Pause the media. 
void OnMouseDownPauseMedia(object sender, MouseButtonEventArgs args)
{
    VideoPreview.Pause();
}

// Stop the media. 
void OnMouseDownStopMedia(object sender, MouseButtonEventArgs args)
{
    VideoPreview.Stop();
}

当点击任一鼠标事件时,我得到例外。

1 个答案:

答案 0 :(得分:2)

答案确实在错误文本中... 除非LoadedBehaviorUnloadedBehavior设置为Manual 。因此,您的解决方案是将MediaElement.LoadedBehaviorMediaElement.UnloadedBehavior属性设置为值MediaState.Manual

来自MSDN上的MediaElement.LoadedBehavior Property页:

  

必须将LoadedBehavior设置为“手动”才能使用“播放”,“暂停”和“停止”方法以交互方式控制媒体。

从MSDN中可以找到的内容真是太棒了。