当前位置: 首页 > news >正文

Silverlight2 边学边练 之五 视频

与前一篇类似,Silverlight2对于视频的操作也是通过MediaElement。
本篇通过VideoBrush对文字进行渲染处理,同时在倒影中使用视频翻转。
看到有的博友将Silverlight示例嵌入到博客中很是眼馋,似乎需要一个DemoServer才
可以实现。咳!没这条件啊,哪有Free的能用啊?!在没有Server支持前还是先用Picture吧:)

效果图奉上

2009-7-31-17.22.00

注意,在调用视频文件时,Height与Width都要设置为“0” ,为什么?自己把他们删了看看效果便知。

<MediaElement x:Name="fireMovie" Source="fire.wmv" MediaEnded="fireMovie_MediaEnded"
              Height="0" Width="0"></MediaElement>


XAML Code:

<UserControl x:Class="VideoBrush.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <!--调用火焰视频,下面要用于渲染文字。-->
        <MediaElement x:Name="fireMovie" Source="fire.wmv" MediaEnded="fireMovie_MediaEnded"
                      Height="0" Width="0"></MediaElement>
        
        <!--将文字通过VideoBrush进行渲染-->
        <TextBlock Grid.Row="0" Text="Silverlight2" FontFamily="Arial Black" FontSize="80">
            <TextBlock.Foreground>
                <VideoBrush SourceName="fireMovie"></VideoBrush>
            </TextBlock.Foreground>
        </TextBlock>
        
        <!--创建反转文字-->
        <TextBlock Grid.Row="1" Text="Silverlight2" FontFamily="Arial Black" FontSize="80"
                   RenderTransformOrigin="0.5,0.4">
            <!--将文字反转-->
            <TextBlock.RenderTransform>
                <ScaleTransform ScaleY="-1"></ScaleTransform>
            </TextBlock.RenderTransform>
            <!--给反转文字进行视频渲染-->
            <TextBlock.Foreground>
                <VideoBrush SourceName="fireMovie">
                    <!--将视频反转-->
                    <VideoBrush.RelativeTransform>
                        <ScaleTransform ScaleY="-1" CenterY="0.5"></ScaleTransform>
                    </VideoBrush.RelativeTransform>
                </VideoBrush>
            </TextBlock.Foreground>
            <!--给反转文字增加一个蒙版效果-->
            <TextBlock.OpacityMask>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                    <GradientStop Color="Transparent" Offset="0"></GradientStop>
                    <GradientStop Color="Black" Offset="1"></GradientStop>
                </LinearGradientBrush>
            </TextBlock.OpacityMask>
        </TextBlock>
    </Grid>
</UserControl>

然后,让视频重复播放起来。
C# Code:

private void fireMovie_MediaEnded(object sender, RoutedEventArgs e)
{
  fireMovie.Stop();
  fireMovie.Play();
}

本例参考自《Pro Silverlight 2 in C# 2008》CHAPTER 10 SOUND, VIDEO, AND DEEP ZOOM
::源代码下载::

相关文章:

  • Powershell导出活动目录用户信息表
  • 第一期广州技术沙龙预告
  • Softether实现三种架构×××
  • 让中国游客目瞪口呆的国外广告牌
  • RHEL4简单的DHCP服务器配置
  • 什么是服务器监控软件?
  • 幸福感来自会痛的心
  • 让彩色光标出现在Delphi程序中
  • 戴尔 当日×××
  • 在Windows Live Messenger 文件传输防病毒参数配置(SEP)
  • 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第二十五集
  • 微软LiveMesh 云计算的缩影
  • 错了,就要勇敢地承认--为大郅呐喊
  • 北京市信息技术教学设计报告会
  • Lean __and ERP
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Django 博客开发教程 8 - 博客文章详情页
  • IDEA常用插件整理
  • interface和setter,getter
  • js如何打印object对象
  • LeetCode算法系列_0891_子序列宽度之和
  • Python_网络编程
  • Rancher-k8s加速安装文档
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 编写符合Python风格的对象
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 浮动相关
  • 高度不固定时垂直居中
  • 关于 Cirru Editor 存储格式
  • 前端自动化解决方案
  • 如何编写一个可升级的智能合约
  • 移动端 h5开发相关内容总结(三)
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (五)网络优化与超参数选择--九五小庞
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Core 中插件式开发实现
  • .NET 分布式技术比较
  • .NET连接数据库方式
  • @staticmethod和@classmethod的作用与区别
  • [ 数据结构 - C++]红黑树RBTree
  • [ACTF2020 新生赛]Upload 1
  • [Android]一个简单使用Handler做Timer的例子
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [Avalon] Avalon中的Conditional Formatting.
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [CTF]2022美团CTF WEB WP
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [Excel] vlookup函数
  • [HeMIM]Cl,[AeMIM]Br,[CeEIM]Cl,([HO-PECH-MIM]Cl,[HOOC-PECH-MIM]Cl改性酚醛树脂