媒体元素的奇怪行为

本文关键字:元素 媒体 | 更新日期: 2023-09-27 18:37:20

我正在制作具有基本功能的媒体播放器,但是当单击暂停播放或停止按钮时,它的行为很奇怪,出现异常"系统.不支持异常" 其他信息:无法控制媒体,除非"加载行为"或"卸载行为"设置为"手动"。

所需的代码和 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();
}

单击任一鼠标事件时,我得到异常。

媒体元素的奇怪行为

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

从 MSDN 上的"MediaElement.LoadedBehavior属性"页:

必须将"加载行为"设置为"手动",才能使用"播放"、"暂停"和"停止"方法以交互方式控制媒体。

你能从MSDN找到的东西真是太神奇了。