相關(guān)資訊
- 用Visual Basic為軟件增加注冊(cè)功能
- Visual Basic中輕松打造絢麗按鈕
- VB實(shí)現(xiàn)SQL Server 2000存儲(chǔ)過程調(diào)用
- 用Visual Basic實(shí)現(xiàn)undo功能
- Visual Basic中調(diào)用MSN API函數(shù)
- Java Eclipse反編譯配置
- Win2000+Apache+MySql+PHP4+PERL安
- 確定SQL Server填充因子(FILLFACTO
- SQL Server日期計(jì)算
- WCF學(xué)習(xí):Instance context model(
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416904
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
silverlight自定義控件之多媒體視頻播放器
2012/12/28 17:40:15 出處:本站原創(chuàng) 人氣:556次 字號(hào):小 中 大
//當(dāng)媒體流已被驗(yàn)證和打開且已讀取文件頭時(shí)發(fā)生。在該自定義控件中主要通過該事件獲取視頻的總時(shí)長。
public event RoutedEventHandler MediaOpened
void mediaElement_MediaOpened(object sender, RoutedEventArgs e)
{
this.playTools.TotaPlayTime = (int)this.mediaElement.NaturalDuration.TimeSpan.TotalSeconds;
}
//當(dāng) MediaElement 不再播放音頻或視頻時(shí)發(fā)生。在該自定義控件中主要通過該事件設(shè)置MediaElement為Stop,并判斷是否循環(huán)播放而進(jìn)行繼續(xù)循環(huán)播放。
public event RoutedEventHandler MediaEnded
void mediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
this.mediaElement.Stop();
if (this.IsReplay)
{
this.mediaElement.Play();
}
}
//當(dāng) CurrentState 屬性的值更改時(shí)發(fā)生。在該自定義控件中主要通過該事件顯示當(dāng)前視頻播放狀態(tài)信息。
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 關(guān)聯(lián)的錯(cuò)誤時(shí)發(fā)生。MediaFailed 事件可在下列條件下發(fā)生:1、未找到文件。2、無效的(無法識(shí)別的或不支持的)媒體格式。3、播放期間未知的媒體錯(cuò)誤。
//在該自定義控件中主要通過該事件顯示錯(cuò)誤信息。
public event EventHandler MediaFailed
void mediaElement_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
this.playTools.CurrentMessage = e.ErrorException.Message;
}
//該事件是播放時(shí)發(fā)生,用于獲取當(dāng)前已播放時(shí)間
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
void CompositionTarget_Rendering(object sender, EventArgs e)
{
int currentTime = (int)this.mediaElement.Position.TotalSeconds;
this.playTools.CurrentPlayTime = currentTime;
}