当前位置: 首页IT技术 → silverlight自定义控件之多媒体视频播放器

silverlight自定义控件之多媒体视频播放器

更多
2 页 使用到的重要事件(非运行代码):

//当媒体流已被验证和打开且已读取文件头时发生。在该自定义控件中主要通过该事件获取视频的总时长。

public event RoutedEventHandler MediaOpened

void mediaElement_MediaOpened(object sender, RoutedEventArgs e)

{

this.playTools.TotaPlayTime = (int)this.mediaElement.NaturalDuration.TimeSpan.TotalSeconds;

}

//当 MediaElement 不再播放音频或视频时发生。在该自定义控件中主要通过该事件设置MediaElement为Stop,并判断是否循环播放而进行继续循环播放。

public event RoutedEventHandler MediaEnded

void mediaElement_MediaEnded(object sender, RoutedEventArgs e)

{

this.mediaElement.Stop();

if (this.IsReplay)

{

this.mediaElement.Play();

}

}

//当 CurrentState 属性的值更改时发生。在该自定义控件中主要通过该事件显示当前视频播放状态信息。

public event RoutedEventHandler CurrentStateChanged

if (this.mediaElement.CurrentState == MediaElementState.Buffering)

{

this.playTools.CurrentMessage = this.mediaElement.CurrentState + " " + Math.Round(this.mediaElement.BufferingProgress * 100, 0).ToString() + "%";

}

//在存在与媒体 Source 关联的错误时发生。MediaFailed 事件可在下列条件下发生:1、未找到文件。2、无效的(无法识别的或不支持的)媒体格式。3、播放期间未知的媒体错误。

//在该自定义控件中主要通过该事件显示错误信息。

public event EventHandler MediaFailed

void mediaElement_MediaFailed(object sender, ExceptionRoutedEventArgs e)

{

this.playTools.CurrentMessage = e.ErrorException.Message;

}

//该事件是播放时发生,用于获取当前已播放时间

CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);

void CompositionTarget_Rendering(object sender, EventArgs e)

{

int currentTime = (int)this.mediaElement.Position.TotalSeconds;

this.playTools.CurrentPlayTime = currentTime;

}

本文导航
热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)