论文部分内容阅读
如何在PowerPoint中使用视频文件的指定片段是在使用PowerPoint制作课件时常遇到的问题。在没有找到有效控制视频播放起止位置的方法之前,通常有三种“权宜之计”:1.使用超级解霸等视频编辑或分割工具将指定的视频片段提取出来,将其直接插入到幻灯片中。2.如果是AVI类型的视频文件,可将其作为“由文件创建”的“对象”插入到幻灯片中,执行“视频剪辑对象”中的“编辑”命令,通过工具栏中的“开始选择”按钮和“结束选择”按钮来重新设置视频播放的起止位置。3.通过在幻灯片中插入“Windows Media Player”等媒体播放控件来播放整个视频文件,使用课件时则通过拖动媒体播放控件的滑动块来“快进”到指定片段。
纵观以上三种方法,前两种方法都对PowerPoint中所用的视频提出了内容或格式上的要求,教师在使用时要具备一定的加工处理视频信息的能力。第三种方法虽然回避了对视频素材的加工处理,但在使用课件时要靠手工拖动滑动块来选择播放的起始位置,指定的片段播放结束时还要及时手工停止播放——这在教学应用中无疑是很不方便的。我们能否将其中由教师手工控制的操作交由计算机自动完成?
要解决上述问题,其实是要实现对媒体播放控件播放状态的控制。下面以使用“Windows Media Player”控件来播放视频文件“sample.wmv”第60秒至第600秒之间的片断为例来说明控制的细节。第一步,将控件要播放的视频文件设为“sample.wmv”,第二步,将控件播放视频的当前位置设在第60秒处,第三步,控件开始播放视频,第四步,当控件播放视频的当前位置超过第600秒处时,暂停播放视频。
事实上,前三步在VBA编程中只要用对应的三条语句就能实现(“Windows Media Player”控件使用默认名WindowsMediaPlayer1):
WindowsMediaPlayer1.url=“sample.wmv”
WindowsMediaPlayer1.Controls.currentPosition = 60
WindowsMediaPlayer1.Controls.play
第四步的实现则需要实时判断控件播放视频的当前位置,这对没有定时器(Timer)控件的VBA而言是难以实现的。但是Win32API中的设置定时器函数SetTimer( )与撤销定时器函数KillTimer( )可以弥补这一缺陷。通过语句“TimeID = SetTimer(0, 0, 100, AddressOfTimerProc)”可以分配定时器,时间间隔为100毫秒。定时事件处理程序为TimerProc,用来实现第四步的控制,其过程语句为(假设WindowsMediaPlayer1所在幻灯片名称为Slide1):
If Slide1. WindowsMediaPlayer1.Controls.currentPosition > 600 Then
Slide1. WindowsMediaPlayer1.Controls.pause
KillTimer 0, TimeID
End If
下面笔者具体介绍一下在PowerPoint中控制视频播放的起止位置的实现步骤。
1.插入“Windows Media Player”控件
(1)单击菜单栏中的“视图”选项,选中下拉菜单中的“控件工具箱”,单击下级菜单中的“其他控件”按钮。
(2)在随后打开的控件选项界面中,选择“Windows Media Player”选项。在PowerPoint的编辑区域中,画出一个合适大小的矩形区域,该区域会出现一个“Windows Media Player”控件(可以通过“属性”窗口来设置其属性,这里我们使用默认属性)。
2.插入命令按钮
(1)单击“控件工具箱”中的“命令按钮”,在幻灯片的适当位置画出一个合适大小的矩形区域,随后该区域出现一个“命令按钮”控件。
(2)选中命令按钮,单击鼠标右键,在快捷菜单中选择“属性”命令。在“属性”窗口中将默认的Caption属性值“CommandButton1”改为“播放视频”(这是出于对幻灯片界面设计的考虑)。
3.编写代码
(1)书写命令按钮的单击事件处理程序
双击命令按钮,自动打开“Microsoft Visual Basic”代码窗口,其中有两行自动产生的代码:
Private Sub CommandButton1_Click()
End Sub
接下来,在这两行之间书写如下代码:
TimeID = SetTimer(0, 0, 100, AddressOfTimerProc)’分配定时器
WindowsMediaPlayer1.url="sample.wmv" ’设置播放视频的文件地址
WindowsMediaPlayer1.Controls.currentPosition = 60 ’设置播放视频的当前位置
WindowsMediaPlayer1.Controls.play ’开始播放
(2)在标准模块中声明用到的API函数,定义定时事件处理子程序TimerProc
在“Microsoft Visual Basic”代码窗口,即VBA编程环境下,选择“插入”菜单的“模块”命令,在打开的“模块1”代码窗口中写入如下代码:
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long’SetTimer函数声明
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long ’KillTimer函数声明
Public Sub TimeProc()’定时器事件处理子程序
If Slide1.wmp1.Controls.currentPosition > 600 Then
Slide1.wmp1.Controls.pause ’暂停播放
KillTimer 0, TimerID ’撤销定时器
End If
End Sub
4.保存演示文稿
文稿要与视频文件“sample.wmv”保存在同一路径下,调试运行。
以上详细说明了在PowerPoint中控制视频播放起止位置的思路和方法。以此为基础,我们很容易在一张幻灯片中点播多个音视频素材的不同片断,这对在课件中频繁使用音视频素材的教师而言,既省了提取素材之苦,又能以较少数目的幻灯片做成具有较好交互性能的课件。此外,本例调用两个Win32API函数实现PowerPoint中的定时功能的做法,也为在PowerPoint中实现高水平交互起到很好的借鉴作用。
参考文献
[1] [美]克里斯 H.帕帕斯 威康 H.默里(著) 冯博琴等(译).VB进阶——用Windows API编程,西安交通大学出版社,2001,4.
[2] 北京博彦科技发展有限责任公司.0ffice VBA编程高手,北京大学出版社,2000,12.
纵观以上三种方法,前两种方法都对PowerPoint中所用的视频提出了内容或格式上的要求,教师在使用时要具备一定的加工处理视频信息的能力。第三种方法虽然回避了对视频素材的加工处理,但在使用课件时要靠手工拖动滑动块来选择播放的起始位置,指定的片段播放结束时还要及时手工停止播放——这在教学应用中无疑是很不方便的。我们能否将其中由教师手工控制的操作交由计算机自动完成?
要解决上述问题,其实是要实现对媒体播放控件播放状态的控制。下面以使用“Windows Media Player”控件来播放视频文件“sample.wmv”第60秒至第600秒之间的片断为例来说明控制的细节。第一步,将控件要播放的视频文件设为“sample.wmv”,第二步,将控件播放视频的当前位置设在第60秒处,第三步,控件开始播放视频,第四步,当控件播放视频的当前位置超过第600秒处时,暂停播放视频。
事实上,前三步在VBA编程中只要用对应的三条语句就能实现(“Windows Media Player”控件使用默认名WindowsMediaPlayer1):
WindowsMediaPlayer1.url=“sample.wmv”
WindowsMediaPlayer1.Controls.currentPosition = 60
WindowsMediaPlayer1.Controls.play
第四步的实现则需要实时判断控件播放视频的当前位置,这对没有定时器(Timer)控件的VBA而言是难以实现的。但是Win32API中的设置定时器函数SetTimer( )与撤销定时器函数KillTimer( )可以弥补这一缺陷。通过语句“TimeID = SetTimer(0, 0, 100, AddressOfTimerProc)”可以分配定时器,时间间隔为100毫秒。定时事件处理程序为TimerProc,用来实现第四步的控制,其过程语句为(假设WindowsMediaPlayer1所在幻灯片名称为Slide1):
If Slide1. WindowsMediaPlayer1.Controls.currentPosition > 600 Then
Slide1. WindowsMediaPlayer1.Controls.pause
KillTimer 0, TimeID
End If
下面笔者具体介绍一下在PowerPoint中控制视频播放的起止位置的实现步骤。
1.插入“Windows Media Player”控件
(1)单击菜单栏中的“视图”选项,选中下拉菜单中的“控件工具箱”,单击下级菜单中的“其他控件”按钮。
(2)在随后打开的控件选项界面中,选择“Windows Media Player”选项。在PowerPoint的编辑区域中,画出一个合适大小的矩形区域,该区域会出现一个“Windows Media Player”控件(可以通过“属性”窗口来设置其属性,这里我们使用默认属性)。
2.插入命令按钮
(1)单击“控件工具箱”中的“命令按钮”,在幻灯片的适当位置画出一个合适大小的矩形区域,随后该区域出现一个“命令按钮”控件。
(2)选中命令按钮,单击鼠标右键,在快捷菜单中选择“属性”命令。在“属性”窗口中将默认的Caption属性值“CommandButton1”改为“播放视频”(这是出于对幻灯片界面设计的考虑)。
3.编写代码
(1)书写命令按钮的单击事件处理程序
双击命令按钮,自动打开“Microsoft Visual Basic”代码窗口,其中有两行自动产生的代码:
Private Sub CommandButton1_Click()
End Sub
接下来,在这两行之间书写如下代码:
TimeID = SetTimer(0, 0, 100, AddressOfTimerProc)’分配定时器
WindowsMediaPlayer1.url="sample.wmv" ’设置播放视频的文件地址
WindowsMediaPlayer1.Controls.currentPosition = 60 ’设置播放视频的当前位置
WindowsMediaPlayer1.Controls.play ’开始播放
(2)在标准模块中声明用到的API函数,定义定时事件处理子程序TimerProc
在“Microsoft Visual Basic”代码窗口,即VBA编程环境下,选择“插入”菜单的“模块”命令,在打开的“模块1”代码窗口中写入如下代码:
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long’SetTimer函数声明
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long ’KillTimer函数声明
Public Sub TimeProc()’定时器事件处理子程序
If Slide1.wmp1.Controls.currentPosition > 600 Then
Slide1.wmp1.Controls.pause ’暂停播放
KillTimer 0, TimerID ’撤销定时器
End If
End Sub
4.保存演示文稿
文稿要与视频文件“sample.wmv”保存在同一路径下,调试运行。
以上详细说明了在PowerPoint中控制视频播放起止位置的思路和方法。以此为基础,我们很容易在一张幻灯片中点播多个音视频素材的不同片断,这对在课件中频繁使用音视频素材的教师而言,既省了提取素材之苦,又能以较少数目的幻灯片做成具有较好交互性能的课件。此外,本例调用两个Win32API函数实现PowerPoint中的定时功能的做法,也为在PowerPoint中实现高水平交互起到很好的借鉴作用。
参考文献
[1] [美]克里斯 H.帕帕斯 威康 H.默里(著) 冯博琴等(译).VB进阶——用Windows API编程,西安交通大学出版社,2001,4.
[2] 北京博彦科技发展有限责任公司.0ffice VBA编程高手,北京大学出版社,2000,12.