天天看点

闲来无事,倒腾了一个简单的silverlight视频播放器

近二日闲来无事,把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视频播放器

继续阅读