Windows8 开发的视频播放程序

此项目参考"传智播客.net培训Windows 8开发视频教程"

我是看了视频后用C++写的,主要运用了:

storybord 动画 和 disPchtimer 定时器技术。

开发过程如下:

1,在xaml中定义一个MediaElement 播放控件

<Grid>
  <Image x:Name="img1" Source="Assets/1.png" Stretch="None" Margin="20,30,0,20"/>
  <MediaElement PointerEntered="Video_PointerEntered_1" PointerMoved="Video_PointerMoved_1" x:Name="VideoPlay"                           MediaOpened="MediaElement_MediaOpened_1" Height="432" Width="800" Margin="20,30,0,20">
        <MediaElement.Projection>
          <PlaneProjection x:Name="mediaChange" RotationY="0">
        </PlaneProjection>
        </MediaElement.Projection>
  </MediaElement>

</Grid>

这里的 MediaElement.Projection 是将要控制该控件旋转的。

<MediaElement.Projection>
   <PlaneProjection x:Name="mediaChange" RotationY="0"> //绕Y轴旋转
</PlaneProjection>

当视频没有播放前,我贴了一张图片<<Image x:Name="img1"/>

2,插入视频地址,把MediaElement 控件的Source 赋给该url;

VideoPlay->Source = ref new Uri(strUrl);//需要ref new

VideoPlay->Play();//插入url 完成开始播放

如图:

3,我在 MediaElement 控件中,使用 了 PointerEntered 方法(当鼠标进入控件区域激发) 和 PointerMoved 方法(鼠标在该区域移动激发)来控制播放按钮 的隐藏 和 显示。

<MediaElement PointerEntered="Video_PointerEntered_1" PointerMoved="Video_PointerMoved_1" x:Name="VideoPlay"                           MediaOpened="MediaElement_MediaOpened_1" Height="432" Width="800" Margin="20,30,0,20">

</MediaElement>

响应 PointerMoved 事件,当鼠标在控件上移动时,播放按钮显示。

 

 

 

4,放置一个定时器,当鼠标没有移动的时候,播放按钮消失。

DispatcherTimer^ t = ref new DispatcherTimer(); //放置一个定时器
TimeSpan ts;
ts.Duration = 8* 10000000; //间隔8秒触发一次
t->Interval = ts;
t->Tick += ref new EventHandler<Platform::Object^>(this,&MainPage::time_tick); //触发后要做的事
t->Start();

 

 

5,大家还记得我们最初在 MediaElement 中定义的动画事件吗,现在我们来处理这个mediaChange 的改变。

<MediaElement.Projection>
  <PlaneProjection x:Name="mediaChange" RotationY="0">
  </PlaneProjection>
</MediaElement.Projection>

当点击 变大 按钮的时候,向左旋转

void MainPage::changeBig_Click_1(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  mediaChange->RotationY += 10;
}

当点击变小按钮的时候,向右旋转。

void MainPage::changeSmail_Click_1(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  mediaChange->RotationY -= 10;
}

大概就是这么个过程,

如果还有不明白的请给我留言联系。

最后感谢 “传播智客” 提供的win8开发视频,不看我是做不出来的。3Q。

最后效果截图:

posted @ 2013-02-01 10:34  susn21cn  阅读(450)  评论(1)    收藏  举报