近二日闲来无事,把silverlight的官方文档瞅了瞅,倒腾了一个简单的视频播放器,顺便也测试了下能否播放传说中的h.264,最终效果如下:
布局思路:
Grid做为最外层容器,分上中下三行
第一行为视频播放窗口,同时单击视频时"暂停"遮罩层也放在这一行,只不过默认不显示而已
第二行为进度条显示区,为了方便布局,在这一行用StackPanel作子容器横向放置了二个控件(进度条和时间显示)
第三行为其它的控制按钮区,也是用StackPanel横向放置其它控件
实现的功能:
1.单击视频,暂停播放,再次单击则继续播放,原则就是利用鼠标单击事件控制Canvas的显示/隐藏以及调用MediaElement的Play(),Pause()方法
2.进度条与播放时间的同步,这里用到了Timer控件,每隔一定时间重新设置进度条的值
3.播放列表采用json字符串解析后绑定实现,同时选择列表的相关视频后,马上播放选择的视频
4.全屏功能
5.静音功能(其实还可以方便左右声道功能,只要不知道界面上怎么放,所以这一块功能没加上去)
6.缓冲以及加载进度的百分比进度显示
7.播放时,预先加载下一段视频(这一块好象效果不明显,主要是对silverlight的缓冲机制不清楚,期待大家共同探讨改进)
另:本示例中用的视频全部为mp4格式的h.264视频
其它不清楚的地方,基本上代码中都有注释
xaml代码:
1
闲来无事,倒腾了一个简单的silverlight视频播放器 <UserControl x:Class="Test.MainPage"
2
闲来无事,倒腾了一个简单的silverlight视频播放器 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3
闲来无事,倒腾了一个简单的silverlight视频播放器 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
闲来无事,倒腾了一个简单的silverlight视频播放器 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5
闲来无事,倒腾了一个简单的silverlight视频播放器 mc:Ignorable="d">
6
闲来无事,倒腾了一个简单的silverlight视频播放器 <Grid x:Name="LayoutRoot" ShowGridLines="False" >
7
闲来无事,倒腾了一个简单的silverlight视频播放器 8
闲来无事,倒腾了一个简单的silverlight视频播放器 <!--Grid布局:分成三行,第一行放视频窗口,第二行为进度条,第三行为其它控制按钮-->
9
闲来无事,倒腾了一个简单的silverlight视频播放器 <Grid.ColumnDefinitions>
10
闲来无事,倒腾了一个简单的silverlight视频播放器 <ColumnDefinition Width="*"></ColumnDefinition>
11
闲来无事,倒腾了一个简单的silverlight视频播放器 </Grid.ColumnDefinitions>
12
闲来无事,倒腾了一个简单的silverlight视频播放器 13
闲来无事,倒腾了一个简单的silverlight视频播放器 <Grid.RowDefinitions>
14
闲来无事,倒腾了一个简单的silverlight视频播放器 <RowDefinition Height="*"></RowDefinition>
15
闲来无事,倒腾了一个简单的silverlight视频播放器 <RowDefinition Height="22"></RowDefinition>
16
闲来无事,倒腾了一个简单的silverlight视频播放器 <RowDefinition Height="25"></RowDefinition>
17
闲来无事,倒腾了一个简单的silverlight视频播放器 </Grid.RowDefinitions>
18
闲来无事,倒腾了一个简单的silverlight视频播放器 19
闲来无事,倒腾了一个简单的silverlight视频播放器 20
闲来无事,倒腾了一个简单的silverlight视频播放器 <!--视频播放控件-->
21
闲来无事,倒腾了一个简单的silverlight视频播放器 <MediaElement x:Name="media" Source="" Grid.Row="0" Grid.Column="0" CurrentStateChanged="Media_State_Changed" MediaEnded="media_MediaEnded" Cursor="Hand" MouseLeftButtonDown="media_MouseLeftButtonDown" BufferingProgressChanged="media_BufferingProgressChanged" DownloadProgressChanged="media_DownloadProgressChanged"></MediaElement>
22
闲来无事,倒腾了一个简单的silverlight视频播放器 23
闲来无事,倒腾了一个简单的silverlight视频播放器 <!--这里用一个Canvas来实现暂停时的遮盖效果-->
24
闲来无事,倒腾了一个简单的silverlight视频播放器 <Canvas Background="#AAFAEBD7" Grid.Row="0" Grid.Column="0" Cursor="Hand" x:Name="canvas_Pause" MouseLeftButtonDown="Canvas_MouseLeftButtonDown" >
25
闲来无事,倒腾了一个简单的silverlight视频播放器 <Ellipse Height="200" Width="200" Stroke="AliceBlue" StrokeThickness="10" Canvas.Left="140" Canvas.Top="80"></Ellipse>
26
闲来无事,倒腾了一个简单的silverlight视频播放器 <Path Stretch="Fill" Stroke="AliceBlue" StrokeThickness="10" Height="98" Width="10" UseLayoutRounding="False" Canvas.Left="203" Canvas.Top="131" Data="M208,136 L208,224"/>
27
闲来无事,倒腾了一个简单的silverlight视频播放器 <Path Stretch="Fill" Stroke="AliceBlue" StrokeThickness="10" Height="98" Width="10" UseLayoutRounding="False" Canvas.Left="263" Canvas.Top="131" Data="M208,136 L208,224"/>
28
闲来无事,倒腾了一个简单的silverlight视频播放器 29
闲来无事,倒腾了一个简单的silverlight视频播放器 <TextBlock Canvas.Left="104" Canvas.Top="296" Foreground="White" >Made by 菩提树下的杨过(http://yjmyzz.cnblogs.com/)</TextBlock>
30
闲来无事,倒腾了一个简单的silverlight视频播放器 </Canvas>
31
闲来无事,倒腾了一个简单的silverlight视频播放器 32
闲来无事,倒腾了一个简单的silverlight视频播放器 <MediaElement x:Name="mediaBuffer" Width="0" Grid.Column="0" Grid.Row="0" BufferingTime="0:0:10" IsMuted="True" AutoPlay="True" ></MediaElement>
33
闲来无事,倒腾了一个简单的silverlight视频播放器 34
闲来无事,倒腾了一个简单的silverlight视频播放器 <!--第二行用一个StackPanel横向放了二个子控件,用于显示进度条和当前播放时间-->
35
闲来无事,倒腾了一个简单的silverlight视频播放器 <StackPanel Grid.Column="0" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" >
36
闲来无事,倒腾了一个简单的silverlight视频播放器 <Slider Height="20" Width="370" x:Name="sliderProgress" ValueChanged="sliderProgress_ValueChanged" Cursor="Hand" ></Slider>
37
闲来无事,倒腾了一个简单的silverlight视频播放器 <TextBlock Text="00:00:00/00:00:00" Width="110" x:Name="txtTime"/>
38
闲来无事,倒腾了一个简单的silverlight视频播放器 </StackPanel>
39
闲来无事,倒腾了一个简单的silverlight视频播放器 40
闲来无事,倒腾了一个简单的silverlight视频播放器 <!--第三行同样用StackPanel横向放置其它控制按钮-->
41
闲来无事,倒腾了一个简单的silverlight视频播放器 <StackPanel Grid.Column="0" Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" >
42
闲来无事,倒腾了一个简单的silverlight视频播放器 <Button Click="PlayMedia" Content="||" Width="25" Height="25" x:Name="btnPlay" Cursor="Hand" />
43
闲来无事,倒腾了一个简单的silverlight视频播放器 <Button Click="StopMedia" Content="■" Width="25" Height="25" x:Name="btnStop" Cursor="Hand"/>
44
闲来无事,倒腾了一个简单的silverlight视频播放器 <TextBlock x:Name="txtProgress" FontSize="12" Width="90" Text="缓冲中
闲来无事,倒腾了一个简单的silverlight视频播放器 100%" Height="25" TextAlignment="Center" Margin="3,0" Padding="0,6,0,0" ></TextBlock>
45
闲来无事,倒腾了一个简单的silverlight视频播放器 <ComboBox x:Name="cboList" SelectionChanged="cboList_SelectionChanged" Height="25" Width="232">
46
闲来无事,倒腾了一个简单的silverlight视频播放器 47
闲来无事,倒腾了一个简单的silverlight视频播放器 </ComboBox>
48
闲来无事,倒腾了一个简单的silverlight视频播放器 <Button Content="静" Width="25" Height="25" Margin="3,0" x:Name="btnVoice" Click="btnVoice_Click" Cursor="Hand"></Button>
49
闲来无事,倒腾了一个简单的silverlight视频播放器 <Slider Height="25" Width="50" x:Name="sliderVoice" Maximum="1" Minimum="0" ValueChanged="sliderVoice_ValueChanged" Value="0.5" Cursor="Hand" ></Slider>
50
闲来无事,倒腾了一个简单的silverlight视频播放器 <Button Content="全" Width="20" Height="25" Cursor="Hand" x:Name="btnFull" Click="btnFull_Click"></Button>
51
闲来无事,倒腾了一个简单的silverlight视频播放器 52
闲来无事,倒腾了一个简单的silverlight视频播放器 53
闲来无事,倒腾了一个简单的silverlight视频播放器 </Grid>
54
闲来无事,倒腾了一个简单的silverlight视频播放器 </UserControl>
55
闲来无事,倒腾了一个简单的silverlight视频播放器 后端cs代码:
1
闲来无事,倒腾了一个简单的silverlight视频播放器 using System;
2
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Collections.Generic;
3
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Json;
4
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Windows;
5
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Windows.Controls;
6
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Windows.Input;
7
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Windows.Interop;
8
闲来无事,倒腾了一个简单的silverlight视频播放器 using System.Windows.Threading;
9
闲来无事,倒腾了一个简单的silverlight视频播放器 10
闲来无事,倒腾了一个简单的silverlight视频播放器 namespace Test
11
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 {
12
闲来无事,倒腾了一个简单的silverlight视频播放器 13
闲来无事,倒腾了一个简单的silverlight视频播放器 14
闲来无事,倒腾了一个简单的silverlight视频播放器 public partial class MainPage : UserControl
15
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 16
闲来无事,倒腾了一个简单的silverlight视频播放器 private DispatcherTimer _timerPlay;
17
闲来无事,倒腾了一个简单的silverlight视频播放器 18
闲来无事,倒腾了一个简单的silverlight视频播放器 //实际应用中,以下字符串可通过wcf调用获得
19
闲来无事,倒腾了一个简单的silverlight视频播放器 private string _medialist = "[{src:'http://task.24city.com/video/01.mp4',name:'苹果王手机第1段'},{src:'http://task.24city.com/video/02.mp4',name:'苹果王手机第2段'},{src:'http://task.24city.com/video/03.mp4',name:'苹果王手机第3段'},{src:'http://task.24city.com/video/04.mp4',name:'蔡依林-柠檬草的味道'},{src:'http://task.24city.com/video/05.mp4',name:'我也不知道是啥'},{src:'http://task.24city.com/video/06.mp4',name:'游戏宣传片段'}]";
20
闲来无事,倒腾了一个简单的silverlight视频播放器 21
闲来无事,倒腾了一个简单的silverlight视频播放器 List<MediaItem> _listMedia = null;
22
闲来无事,倒腾了一个简单的silverlight视频播放器 23
闲来无事,倒腾了一个简单的silverlight视频播放器 int _currentIndex = -1;//正在播放的元素索引
24
闲来无事,倒腾了一个简单的silverlight视频播放器 25
闲来无事,倒腾了一个简单的silverlight视频播放器 26
闲来无事,倒腾了一个简单的silverlight视频播放器 public MainPage()
27
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 28
闲来无事,倒腾了一个简单的silverlight视频播放器 InitializeComponent();
29
闲来无事,倒腾了一个简单的silverlight视频播放器 30
闲来无事,倒腾了一个简单的silverlight视频播放器 //解析Json
31
闲来无事,倒腾了一个简单的silverlight视频播放器 JsonValue _jsValue = JsonArray.Parse(_medialist);
32
闲来无事,倒腾了一个简单的silverlight视频播放器 33
闲来无事,倒腾了一个简单的silverlight视频播放器 if (_jsValue.Count > 0)
34
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 35
闲来无事,倒腾了一个简单的silverlight视频播放器 _listMedia = new List<MediaItem>(_jsValue.Count);
36
闲来无事,倒腾了一个简单的silverlight视频播放器 37
闲来无事,倒腾了一个简单的silverlight视频播放器 for (int i = 0; i < _jsValue.Count; i++)
38
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 39
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 _listMedia.Add(new MediaItem()
闲来无事,倒腾了一个简单的silverlight视频播放器 { src = _jsValue[i]["src"], name = _jsValue[i]["name"] });
40
闲来无事,倒腾了一个简单的silverlight视频播放器 }
41
闲来无事,倒腾了一个简单的silverlight视频播放器 42
闲来无事,倒腾了一个简单的silverlight视频播放器 _currentIndex = 0;//默认从第一个开始播放
43
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Source = new Uri(_listMedia[_currentIndex].src);
44
闲来无事,倒腾了一个简单的silverlight视频播放器 45
闲来无事,倒腾了一个简单的silverlight视频播放器 cboList.ItemsSource = _listMedia;
46
闲来无事,倒腾了一个简单的silverlight视频播放器 cboList.DisplayMemberPath = "name";
47
闲来无事,倒腾了一个简单的silverlight视频播放器 cboList.SelectedIndex = _currentIndex;
48
闲来无事,倒腾了一个简单的silverlight视频播放器 49
闲来无事,倒腾了一个简单的silverlight视频播放器 50
闲来无事,倒腾了一个简单的silverlight视频播放器 this._timerPlay = new DispatcherTimer();
51
闲来无事,倒腾了一个简单的silverlight视频播放器 this._timerPlay.Interval = new TimeSpan(0, 0, 0, 0, 100);
52
闲来无事,倒腾了一个简单的silverlight视频播放器 this._timerPlay.Tick += new EventHandler(timer_Tick);
53
闲来无事,倒腾了一个简单的silverlight视频播放器 this._timerPlay.Start();
54
闲来无事,倒腾了一个简单的silverlight视频播放器 }
55
闲来无事,倒腾了一个简单的silverlight视频播放器 56
闲来无事,倒腾了一个简单的silverlight视频播放器 57
闲来无事,倒腾了一个简单的silverlight视频播放器 App.Current.Host.Content.FullScreenChanged += new EventHandler(Content_FullScreenChanged);
58
闲来无事,倒腾了一个简单的silverlight视频播放器 59
闲来无事,倒腾了一个简单的silverlight视频播放器 60
闲来无事,倒腾了一个简单的silverlight视频播放器 }
61
闲来无事,倒腾了一个简单的silverlight视频播放器 62
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 /**//// <summary>
63
闲来无事,倒腾了一个简单的silverlight视频播放器 /// timer触发时,设置进度条与播放时间同步
64
闲来无事,倒腾了一个简单的silverlight视频播放器 /// </summary>
65
闲来无事,倒腾了一个简单的silverlight视频播放器 /// <param name="sender"></param>
66
闲来无事,倒腾了一个简单的silverlight视频播放器 /// <param name="e"></param>
67
闲来无事,倒腾了一个简单的silverlight视频播放器 void timer_Tick(object sender, EventArgs e)
68
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 69
闲来无事,倒腾了一个简单的silverlight视频播放器 this.sliderProgress.Maximum = this.media.NaturalDuration.TimeSpan.TotalSeconds;
70
闲来无事,倒腾了一个简单的silverlight视频播放器 71
闲来无事,倒腾了一个简单的silverlight视频播放器 this.sliderProgress.ValueChanged -= new RoutedPropertyChangedEventHandler<double>(sliderProgress_ValueChanged);
72
闲来无事,倒腾了一个简单的silverlight视频播放器 73
闲来无事,倒腾了一个简单的silverlight视频播放器 this.sliderProgress.Value = this.media.Position.TotalSeconds;
74
闲来无事,倒腾了一个简单的silverlight视频播放器 75
闲来无事,倒腾了一个简单的silverlight视频播放器 this.sliderProgress.ValueChanged += new RoutedPropertyChangedEventHandler<double>(sliderProgress_ValueChanged);
76
闲来无事,倒腾了一个简单的silverlight视频播放器 77
闲来无事,倒腾了一个简单的silverlight视频播放器 this.txtTime.Text = media.Position.Hours.ToString().PadLeft(2, '0') + ":" + media.Position.Minutes.ToString().PadLeft(2, '0') + ":" + media.Position.Seconds.ToString().PadLeft(2, '0') + "/" + media.NaturalDuration.TimeSpan.Hours.ToString().PadLeft(2, '0') + ":" + media.NaturalDuration.TimeSpan.Minutes.ToString().PadLeft(2, '0') + ":" + media.NaturalDuration.TimeSpan.Seconds.ToString().PadLeft(2, '0');
78
闲来无事,倒腾了一个简单的silverlight视频播放器 79
闲来无事,倒腾了一个简单的silverlight视频播放器 80
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 81
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 显示播放状态
82
闲来无事,倒腾了一个简单的silverlight视频播放器 83
闲来无事,倒腾了一个简单的silverlight视频播放器 84
闲来无事,倒腾了一个简单的silverlight视频播放器 85
闲来无事,倒腾了一个简单的silverlight视频播放器 private void Media_State_Changed(object sender, EventArgs e)
86
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 87
闲来无事,倒腾了一个简单的silverlight视频播放器 88
闲来无事,倒腾了一个简单的silverlight视频播放器 if (_currentIndex >= 0)
89
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 90
闲来无事,倒腾了一个简单的silverlight视频播放器 MediaItem _currentMedia = _listMedia[_currentIndex];
91
闲来无事,倒腾了一个简单的silverlight视频播放器 92
闲来无事,倒腾了一个简单的silverlight视频播放器 switch (media.CurrentState)
93
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 94
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.AcquiringLicense:
95
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "加载许可证
闲来无事,倒腾了一个简单的silverlight视频播放器 ";
96
闲来无事,倒腾了一个简单的silverlight视频播放器 97
闲来无事,倒腾了一个简单的silverlight视频播放器 break;
98
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Buffering:
99
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "缓冲中
闲来无事,倒腾了一个简单的silverlight视频播放器 ";
100
闲来无事,倒腾了一个简单的silverlight视频播放器 101
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Closed:
102
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "已关闭";
103
闲来无事,倒腾了一个简单的silverlight视频播放器 104
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Individualizing:
105
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "加载个性化设置
闲来无事,倒腾了一个简单的silverlight视频播放器 106
闲来无事,倒腾了一个简单的silverlight视频播放器 107
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Opening:
108
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "加载中
闲来无事,倒腾了一个简单的silverlight视频播放器 109
闲来无事,倒腾了一个简单的silverlight视频播放器 110
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Paused:
111
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "已暂停";
112
闲来无事,倒腾了一个简单的silverlight视频播放器 113
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Playing:
114
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "正在播放";
115
闲来无事,倒腾了一个简单的silverlight视频播放器 116
闲来无事,倒腾了一个简单的silverlight视频播放器 //预选缓冲下一段视频(不过在实际测试中,感觉这么干没啥明显效果,欢迎大家共同探讨如何提前缓冲下一段视频)
117
闲来无事,倒腾了一个简单的silverlight视频播放器 if (_currentIndex + 1 > _listMedia.Count - 1)
118
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 119
闲来无事,倒腾了一个简单的silverlight视频播放器 mediaBuffer.Source = new Uri(_listMedia[0].src);
120
闲来无事,倒腾了一个简单的silverlight视频播放器 }
121
闲来无事,倒腾了一个简单的silverlight视频播放器 else
122
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 123
闲来无事,倒腾了一个简单的silverlight视频播放器 mediaBuffer.Source = new Uri(_listMedia[_currentIndex + 1].src);
124
闲来无事,倒腾了一个简单的silverlight视频播放器 125
闲来无事,倒腾了一个简单的silverlight视频播放器 126
闲来无事,倒腾了一个简单的silverlight视频播放器 127
闲来无事,倒腾了一个简单的silverlight视频播放器 case System.Windows.Media.MediaElementState.Stopped:
128
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "已停止";
129
闲来无事,倒腾了一个简单的silverlight视频播放器 130
闲来无事,倒腾了一个简单的silverlight视频播放器 default:
131
闲来无事,倒腾了一个简单的silverlight视频播放器 132
闲来无事,倒腾了一个简单的silverlight视频播放器 133
闲来无事,倒腾了一个简单的silverlight视频播放器 134
闲来无事,倒腾了一个简单的silverlight视频播放器 135
闲来无事,倒腾了一个简单的silverlight视频播放器 136
闲来无事,倒腾了一个简单的silverlight视频播放器 137
闲来无事,倒腾了一个简单的silverlight视频播放器 138
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 139
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 停止播放
140
闲来无事,倒腾了一个简单的silverlight视频播放器 141
闲来无事,倒腾了一个简单的silverlight视频播放器 142
闲来无事,倒腾了一个简单的silverlight视频播放器 143
闲来无事,倒腾了一个简单的silverlight视频播放器 private void StopMedia(object sender, System.Windows.RoutedEventArgs e)
144
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 145
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Stop();
146
闲来无事,倒腾了一个简单的silverlight视频播放器 btnPlay.Content = ">";
147
闲来无事,倒腾了一个简单的silverlight视频播放器 148
闲来无事,倒腾了一个简单的silverlight视频播放器 149
闲来无事,倒腾了一个简单的silverlight视频播放器 150
闲来无事,倒腾了一个简单的silverlight视频播放器 151
闲来无事,倒腾了一个简单的silverlight视频播放器 152
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 153
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 播放/暂停
154
闲来无事,倒腾了一个简单的silverlight视频播放器 155
闲来无事,倒腾了一个简单的silverlight视频播放器 156
闲来无事,倒腾了一个简单的silverlight视频播放器 157
闲来无事,倒腾了一个简单的silverlight视频播放器 private void PlayMedia(object sender, System.Windows.RoutedEventArgs e)
158
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 {
159
闲来无事,倒腾了一个简单的silverlight视频播放器 160
闲来无事,倒腾了一个简单的silverlight视频播放器 if (media.CurrentState == System.Windows.Media.MediaElementState.Paused || media.CurrentState == System.Windows.Media.MediaElementState.Stopped)
161
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 162
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Play();
163
闲来无事,倒腾了一个简单的silverlight视频播放器 btnPlay.Content = "||";
164
闲来无事,倒腾了一个简单的silverlight视频播放器 canvas_Pause.Visibility = Visibility.Collapsed;
165
闲来无事,倒腾了一个简单的silverlight视频播放器 166
闲来无事,倒腾了一个简单的silverlight视频播放器 167
闲来无事,倒腾了一个简单的silverlight视频播放器 else
168
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 169
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Pause();
170
闲来无事,倒腾了一个简单的silverlight视频播放器 btnPlay.Content = ">";
171
闲来无事,倒腾了一个简单的silverlight视频播放器 canvas_Pause.Visibility = Visibility.Visible;
172
闲来无事,倒腾了一个简单的silverlight视频播放器 173
闲来无事,倒腾了一个简单的silverlight视频播放器 174
闲来无事,倒腾了一个简单的silverlight视频播放器 175
闲来无事,倒腾了一个简单的silverlight视频播放器 176
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 177
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 一段播放完毕后,自动跳到下一段
178
闲来无事,倒腾了一个简单的silverlight视频播放器 179
闲来无事,倒腾了一个简单的silverlight视频播放器 180
闲来无事,倒腾了一个简单的silverlight视频播放器 181
闲来无事,倒腾了一个简单的silverlight视频播放器 private void media_MediaEnded(object sender, System.Windows.RoutedEventArgs e)
182
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 183
闲来无事,倒腾了一个简单的silverlight视频播放器 _currentIndex++;
184
闲来无事,倒腾了一个简单的silverlight视频播放器 185
闲来无事,倒腾了一个简单的silverlight视频播放器 if (_currentIndex > _listMedia.Count - 1)
186
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 187
闲来无事,倒腾了一个简单的silverlight视频播放器 _currentIndex = 0;
188
闲来无事,倒腾了一个简单的silverlight视频播放器 189
闲来无事,倒腾了一个简单的silverlight视频播放器 190
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Source = new Uri(_listMedia[_currentIndex].src);
191
闲来无事,倒腾了一个简单的silverlight视频播放器 192
闲来无事,倒腾了一个简单的silverlight视频播放器 cboList.SelectedIndex = _currentIndex;
193
闲来无事,倒腾了一个简单的silverlight视频播放器 194
闲来无事,倒腾了一个简单的silverlight视频播放器 195
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 196
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 下拉列表改变时,播放相关片段
197
闲来无事,倒腾了一个简单的silverlight视频播放器 198
闲来无事,倒腾了一个简单的silverlight视频播放器 199
闲来无事,倒腾了一个简单的silverlight视频播放器 200
闲来无事,倒腾了一个简单的silverlight视频播放器 private void cboList_SelectionChanged(object sender, SelectionChangedEventArgs e)
201
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 202
闲来无事,倒腾了一个简单的silverlight视频播放器 _currentIndex = cboList.SelectedIndex;
203
闲来无事,倒腾了一个简单的silverlight视频播放器 204
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 205
闲来无事,倒腾了一个简单的silverlight视频播放器 206
闲来无事,倒腾了一个简单的silverlight视频播放器 207
闲来无事,倒腾了一个简单的silverlight视频播放器 208
闲来无事,倒腾了一个简单的silverlight视频播放器 209
闲来无事,倒腾了一个简单的silverlight视频播放器 canvas_Pause.Visibility = System.Windows.Visibility.Collapsed;
210
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Position = new TimeSpan(0,0,0,0,0);
211
闲来无事,倒腾了一个简单的silverlight视频播放器 sliderProgress.Value = 0;
212
闲来无事,倒腾了一个简单的silverlight视频播放器 213
闲来无事,倒腾了一个简单的silverlight视频播放器 214
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 215
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 暂时Canvas点击后,隐藏Canvas,同时继续播放
216
闲来无事,倒腾了一个简单的silverlight视频播放器 217
闲来无事,倒腾了一个简单的silverlight视频播放器 218
闲来无事,倒腾了一个简单的silverlight视频播放器 219
闲来无事,倒腾了一个简单的silverlight视频播放器 private void Canvas_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
220
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 221
闲来无事,倒腾了一个简单的silverlight视频播放器 222
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Play();
223
闲来无事,倒腾了一个简单的silverlight视频播放器 224
闲来无事,倒腾了一个简单的silverlight视频播放器 225
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 226
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 视频画面单击时,暂时播放
227
闲来无事,倒腾了一个简单的silverlight视频播放器 228
闲来无事,倒腾了一个简单的silverlight视频播放器 229
闲来无事,倒腾了一个简单的silverlight视频播放器 230
闲来无事,倒腾了一个简单的silverlight视频播放器 private void media_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
231
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 232
闲来无事,倒腾了一个简单的silverlight视频播放器 canvas_Pause.Visibility = System.Windows.Visibility.Visible;
233
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Pause();
234
闲来无事,倒腾了一个简单的silverlight视频播放器 235
闲来无事,倒腾了一个简单的silverlight视频播放器 236
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 237
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 进度条拖动时,跳到相关位置
238
闲来无事,倒腾了一个简单的silverlight视频播放器 239
闲来无事,倒腾了一个简单的silverlight视频播放器 240
闲来无事,倒腾了一个简单的silverlight视频播放器 241
闲来无事,倒腾了一个简单的silverlight视频播放器 private void sliderProgress_ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<double> e)
242
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 243
闲来无事,倒腾了一个简单的silverlight视频播放器 this.media.Position = new TimeSpan((long)(e.NewValue * 1000 * 1000 * 10));
244
闲来无事,倒腾了一个简单的silverlight视频播放器 245
闲来无事,倒腾了一个简单的silverlight视频播放器 246
闲来无事,倒腾了一个简单的silverlight视频播放器 247
闲来无事,倒腾了一个简单的silverlight视频播放器 //private void media_BufferingProgressChanged(object sender, RoutedEventHandler e)
248
闲来无事,倒腾了一个简单的silverlight视频播放器 //{
249
闲来无事,倒腾了一个简单的silverlight视频播放器 // txtTime.Text = "缓冲中
闲来无事,倒腾了一个简单的silverlight视频播放器 " + media.BufferingProgress.ToString("F0") + "%";
250
闲来无事,倒腾了一个简单的silverlight视频播放器 //}
251
闲来无事,倒腾了一个简单的silverlight视频播放器 252
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 253
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 静音按钮的实现
254
闲来无事,倒腾了一个简单的silverlight视频播放器 255
闲来无事,倒腾了一个简单的silverlight视频播放器 256
闲来无事,倒腾了一个简单的silverlight视频播放器 257
闲来无事,倒腾了一个简单的silverlight视频播放器 private void btnVoice_Click(object sender, RoutedEventArgs e)
258
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 259
闲来无事,倒腾了一个简单的silverlight视频播放器 if (media.IsMuted)
260
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 261
闲来无事,倒腾了一个简单的silverlight视频播放器 media.IsMuted = false;
262
闲来无事,倒腾了一个简单的silverlight视频播放器 this.btnVoice.Content = "静";
263
闲来无事,倒腾了一个简单的silverlight视频播放器 sliderVoice.IsEnabled = true;
264
闲来无事,倒腾了一个简单的silverlight视频播放器 265
闲来无事,倒腾了一个简单的silverlight视频播放器 266
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 267
闲来无事,倒腾了一个简单的silverlight视频播放器 media.IsMuted = true;
268
闲来无事,倒腾了一个简单的silverlight视频播放器 this.btnVoice.Content = "音";
269
闲来无事,倒腾了一个简单的silverlight视频播放器 sliderVoice.IsEnabled = false;
270
闲来无事,倒腾了一个简单的silverlight视频播放器 271
闲来无事,倒腾了一个简单的silverlight视频播放器 272
闲来无事,倒腾了一个简单的silverlight视频播放器 273
闲来无事,倒腾了一个简单的silverlight视频播放器 274
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 275
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 调整音量大小
276
闲来无事,倒腾了一个简单的silverlight视频播放器 277
闲来无事,倒腾了一个简单的silverlight视频播放器 278
闲来无事,倒腾了一个简单的silverlight视频播放器 279
闲来无事,倒腾了一个简单的silverlight视频播放器 private void sliderVoice_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
280
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 281
闲来无事,倒腾了一个简单的silverlight视频播放器 if (sliderVoice == null)
282
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 283
闲来无事,倒腾了一个简单的silverlight视频播放器 return;
284
闲来无事,倒腾了一个简单的silverlight视频播放器 285
闲来无事,倒腾了一个简单的silverlight视频播放器 media.Volume = sliderVoice.Value;
286
闲来无事,倒腾了一个简单的silverlight视频播放器 287
闲来无事,倒腾了一个简单的silverlight视频播放器 288
闲来无事,倒腾了一个简单的silverlight视频播放器 private void btnFull_Click(object sender, RoutedEventArgs e)
289
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 290
闲来无事,倒腾了一个简单的silverlight视频播放器 Content contentObj = App.Current.Host.Content;
291
闲来无事,倒腾了一个简单的silverlight视频播放器 contentObj.IsFullScreen = !contentObj.IsFullScreen;
292
闲来无事,倒腾了一个简单的silverlight视频播放器 293
闲来无事,倒腾了一个简单的silverlight视频播放器 294
闲来无事,倒腾了一个简单的silverlight视频播放器 295
闲来无事,倒腾了一个简单的silverlight视频播放器 296
闲来无事,倒腾了一个简单的silverlight视频播放器 297
闲来无事,倒腾了一个简单的silverlight视频播放器 298
闲来无事,倒腾了一个简单的silverlight视频播放器 private void Content_FullScreenChanged(object sender, EventArgs e)
299
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 300
闲来无事,倒腾了一个简单的silverlight视频播放器 301
闲来无事,倒腾了一个简单的silverlight视频播放器 302
闲来无事,倒腾了一个简单的silverlight视频播放器 if (contentObj.IsFullScreen)
303
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 304
闲来无事,倒腾了一个简单的silverlight视频播放器 btnFull.Content = "退";
305
闲来无事,倒腾了一个简单的silverlight视频播放器 306
闲来无事,倒腾了一个简单的silverlight视频播放器 else
307
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 308
闲来无事,倒腾了一个简单的silverlight视频播放器 btnFull.Content = "全";
309
闲来无事,倒腾了一个简单的silverlight视频播放器 310
闲来无事,倒腾了一个简单的silverlight视频播放器 311
闲来无事,倒腾了一个简单的silverlight视频播放器 312
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 313
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 显示缓冲进度
314
闲来无事,倒腾了一个简单的silverlight视频播放器 315
闲来无事,倒腾了一个简单的silverlight视频播放器 316
闲来无事,倒腾了一个简单的silverlight视频播放器 317
闲来无事,倒腾了一个简单的silverlight视频播放器 private void media_BufferingProgressChanged(object sender, RoutedEventArgs e)
318
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 319
闲来无事,倒腾了一个简单的silverlight视频播放器 this.txtProgress.Text = "缓冲中
闲来无事,倒腾了一个简单的silverlight视频播放器 " + (media.BufferingProgress*100).ToString("F0") + "%";
320
闲来无事,倒腾了一个简单的silverlight视频播放器 canvas_Pause.Visibility = Visibility.Visible;
321
闲来无事,倒腾了一个简单的silverlight视频播放器 if (media.BufferingProgress >= 1.0)
322
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 323
闲来无事,倒腾了一个简单的silverlight视频播放器 324
闲来无事,倒腾了一个简单的silverlight视频播放器 325
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 326
闲来无事,倒腾了一个简单的silverlight视频播放器 327
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 328
闲来无事,倒腾了一个简单的silverlight视频播放器 329
闲来无事,倒腾了一个简单的silverlight视频播放器 330
闲来无事,倒腾了一个简单的silverlight视频播放器 331
闲来无事,倒腾了一个简单的silverlight视频播放器 332
闲来无事,倒腾了一个简单的silverlight视频播放器 333
闲来无事,倒腾了一个简单的silverlight视频播放器 334
闲来无事,倒腾了一个简单的silverlight视频播放器 335
闲来无事,倒腾了一个简单的silverlight视频播放器 336
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "正在播放";
337
闲来无事,倒腾了一个简单的silverlight视频播放器 338
闲来无事,倒腾了一个简单的silverlight视频播放器 339
闲来无事,倒腾了一个简单的silverlight视频播放器 340
闲来无事,倒腾了一个简单的silverlight视频播放器 341
闲来无事,倒腾了一个简单的silverlight视频播放器 342
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "就绪";
343
闲来无事,倒腾了一个简单的silverlight视频播放器 344
闲来无事,倒腾了一个简单的silverlight视频播放器 345
闲来无事,倒腾了一个简单的silverlight视频播放器 346
闲来无事,倒腾了一个简单的silverlight视频播放器 347
闲来无事,倒腾了一个简单的silverlight视频播放器 348
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 349
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 显示加载进度
350
闲来无事,倒腾了一个简单的silverlight视频播放器 351
闲来无事,倒腾了一个简单的silverlight视频播放器 352
闲来无事,倒腾了一个简单的silverlight视频播放器 353
闲来无事,倒腾了一个简单的silverlight视频播放器 private void media_DownloadProgressChanged(object sender, RoutedEventArgs e)
354
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 355
闲来无事,倒腾了一个简单的silverlight视频播放器 txtProgress.Text = "加载中
闲来无事,倒腾了一个简单的silverlight视频播放器 " + (media.DownloadProgress * 100).ToString("F0") + "%";
356
闲来无事,倒腾了一个简单的silverlight视频播放器 if (media.DownloadProgress >= 1)
357
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 358
闲来无事,倒腾了一个简单的silverlight视频播放器 359
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 {
360
闲来无事,倒腾了一个简单的silverlight视频播放器 361
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 362
闲来无事,倒腾了一个简单的silverlight视频播放器 363
闲来无事,倒腾了一个简单的silverlight视频播放器 364
闲来无事,倒腾了一个简单的silverlight视频播放器 365
闲来无事,倒腾了一个简单的silverlight视频播放器 break;
366
闲来无事,倒腾了一个简单的silverlight视频播放器 367
闲来无事,倒腾了一个简单的silverlight视频播放器 368
闲来无事,倒腾了一个简单的silverlight视频播放器 369
闲来无事,倒腾了一个简单的silverlight视频播放器 370
闲来无事,倒腾了一个简单的silverlight视频播放器 371
闲来无事,倒腾了一个简单的silverlight视频播放器 372
闲来无事,倒腾了一个简单的silverlight视频播放器 373
闲来无事,倒腾了一个简单的silverlight视频播放器 374
闲来无事,倒腾了一个简单的silverlight视频播放器 375
闲来无事,倒腾了一个简单的silverlight视频播放器 376
闲来无事,倒腾了一个简单的silverlight视频播放器 377
闲来无事,倒腾了一个简单的silverlight视频播放器 378
闲来无事,倒腾了一个简单的silverlight视频播放器 379
闲来无事,倒腾了一个简单的silverlight视频播放器 380
闲来无事,倒腾了一个简单的silverlight视频播放器 381
闲来无事,倒腾了一个简单的silverlight视频播放器 382
闲来无事,倒腾了一个简单的silverlight视频播放器 383
闲来无事,倒腾了一个简单的silverlight视频播放器 384
闲来无事,倒腾了一个简单的silverlight视频播放器 385
闲来无事,倒腾了一个简单的silverlight视频播放器 }
386
闲来无事,倒腾了一个简单的silverlight视频播放器 387
闲来无事,倒腾了一个简单的silverlight视频播放器 388
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 /**//// <summary>
389
闲来无事,倒腾了一个简单的silverlight视频播放器 /// 媒体元素Item自定义类
390
闲来无事,倒腾了一个简单的silverlight视频播放器 /// </summary>
391
闲来无事,倒腾了一个简单的silverlight视频播放器 public class MediaItem
392
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 393
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 public string src
闲来无事,倒腾了一个简单的silverlight视频播放器 { set; get; }
394
闲来无事,倒腾了一个简单的silverlight视频播放器
闲来无事,倒腾了一个简单的silverlight视频播放器 public string name
闲来无事,倒腾了一个简单的silverlight视频播放器 395
闲来无事,倒腾了一个简单的silverlight视频播放器 396
闲来无事,倒腾了一个简单的silverlight视频播放器 }
397
闲来无事,倒腾了一个简单的silverlight视频播放器