- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第06章 多媒体
第六章 多媒体 学习目的 所谓多媒体,一般是指多种传播信息的载体, 可以包括语言、文字、图像、视频、音频等。计算机多媒体技术就是利用计算机把文字、图形、影象、动画、声音及视频等媒体信息数字化,并用计算机设备呈现给使用者。 学习本章要求能够掌握处理音频、视频、动画和语音的编程方法。 主要内容 6.1 WPF动画 6.2 音频支持 6.3 视频支持 6.4 语音功能介绍 6.1 WPF动画 以每秒5-30幅速度得到动画场景(包括运动物体)瞬间的若干幅静止图片,每幅静止图片被称作一帧,然后按照动作发生的时间顺序,以相同速度播放这些图片,利用人眼视觉暂留特性,重新看到运动场景,这种技术被称作动画。 6.1.1 DispatcherTimer类定时器 2.16节曾经介绍了3种定时器,本节介绍第4种定时器DispatcherTimer类。该类是集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列(参见7.2.3节)中的定时器,该定时按属性Interval指定的时间间隔周期性地自动触发Tick事件。 6.1.2 传统实现动画方法 可改变控件属性值来实现动画,例如下例通过修改正方形控件透明度属性Opacit使其慢慢消失,传统的实现方法是使用定时器事件,在事件函数中修改正方形属性Opacit。 【例6.1】本例在窗体增加一个蓝色正方形,其属性Opacit初始值为1.0。用定时器控制正方形属性Opacity每0.2秒减少0.02,当5秒后,正方形属性Opacity=0,正方形消失。重新令正方形属性Opacity=1.0,重复以上动作。这是一个利用改变属性实现动画的例子。 (1)建立新项目,在窗体增加一个蓝色正方形,在Grid标记中增加如下标记: Rectangle Margin=99,77,86,91 Name=rectangle1 Fill=Blue Opacity=1.0/ (2)增加引用命名空间语句: using System.Windows.Threading; (3)在Window1构造函数最后增加如下语句: DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(100); timer.Tick += new EventHandler(timer_Tick); timer.Start(); (4)定时器timer的Tick事件函数如下: void timer_Tick(object sender, EventArgs e) { rectangle1.Opacity -= 0.02; if (rectangle1.Opacity = 0) { rectangle1.Opacity = 1.0; } } (5)编译运行,可以看到正方形逐渐消失,看不到后,又恢复到原始状态,重新消失。 6.1.3 DoubleAnimation类动画 DoubleAnimation是一个动画类,是Timeline类的派生类,将Timeline类对象作为内置定时器(又称时间线),可指定定时器的运行时间总长度、开始时间、重复次数、定时间隔等。该类可自动对目标控件的Double类型属性进行控制,完成动画。其常用属性如下: From、To和By:目标控件的Double类型属性的开始值、结束值和增加值。 Duration:Duration类对象,表示播放的时间长度。 BeginTime:TimeSpan类对象,指定动作延迟时间。 AutoReverse:布尔类型,是否重复动作。 Timeline类派生类DoubleAnimation类对象必须放到时间线容器(又称演示图板)中,即Storyboard标记中,其附加属性TargetName和TargetProperty分别为实现动画的控件对象名称和该控件被控制的属性。可控制时间线容器Storyboard开始工作、停止工作、暂停工作,重新工作等,这些动作分别用如下类表示:BeginStoryboard、StopStoryboard、PauseStoryboard、ResumeStoryboard。 【例6.2】本例实现例6.1的相同功能。在Grid标记中增加如下标记。编译运行后,鼠标右击矩形,矩形颜色逐渐变淡,直至消失,重复这个动作。 Rectangle Name=MyRectangle Width=100 Height=100 Fill=Blue Rectangle.Triggers EventTrigger RoutedEvent=Rectangle.MouseLeftButtonDown
文档评论(0)