delphi 用DSPack播放视频  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 用DSPack播放视频


1. DSPack 2.3.4 安装
一. 下载
由于sourceforge最近不能访问,所以可以去 http://www.progdigy.com/ 下载。
下载 http://www.progdigy.com/files/DSPACK234.zip 后,解压缩到一个目录(我用的是C:\Borland\VCL\DSPACK234)。 

二. 安装 

1 增加搜索路径 (DSPackDir)\src\DirectX9 和 (DSPackDir)\src\DSPack 

在delphi7中选择菜单【Tools】-【Enviroment Options】,在打开的窗口中选择Library页签,在Library Path一项中添加这两个目录C:\Borland\VCL\DSPACK234\src\Directx9 ;C:\Borland\VCL\DSPACK234\src\DSPack 

(将其直接粘贴在原有内容的后面,或者点击Library Path后面的...按钮添加) 

2 编译 (DSPackDir)\packages\DirectX9_D7.dpk 

双击(DSPackDir)\packages\DirectX9_D7.dpk,在delphi7中会显示一个关于重新创建资源文件的对话框,点击OK就可以了。 
在delphi7中的打开窗口中点击compile按钮,完成编译。
在delphi7中选择菜单【File】-【Close All】,在提问是否保存时,选择保存。 

3 编译 (DSPackDir)\packages\DSPack_D7.dpk 

双击(DSPackDir)\packages\DSPack_D7.dpk,在delphi7中会显示一个关于重新创建资源文件的对话框,点击OK就可以了。 
在delphi7中的打开窗口中,点击compile按钮,完成编译。 

在delphi7中选择菜单【File】-【Close All】,在提问是否保存时,选择保存。 

4 编译并安装 (DSPackDir)\packages\DSPackDesign_D7.dpk

双击(DSPackDir)\packages\DSPackDesign_D7.dpk,在delphi7中会显示一个关于重新创建资源文件的对话框,点击OK就可以了。 
在delphi7中的打开窗口中,点击compile按钮,完成编译。 点击Install按钮,完成安装。
在delphi7中选择菜单【File】-【Close All】,在提问是否保存时,选择保存。 

至此,安装已完成,在delphi的控件面板上可以找到DSPack的页签了。

如果在Delphi5或6中安装,则选择对应的D5或D6的文件。

(安装过程中遇到了一个编译错误,说找不到Jedi.inc。这个文件在src\Directx9目录下,为什么不能搜索。原来文档里写的路径是 (DSPackDir)\src\Directx9,而实际解压缩出来的目录名是DirectX9,所以添加搜索路径的时候一定要注意这个问题。把x改成X后,编译就通过了)
$show_page$

安装完后,开始学习DSPack。
首先,要阅读一下(DSPackDir)\help目录下的help.chm文件,粗略地看了一下,内容太多看不出头绪。
还是先学习一下(DSPackDir)\Demos\D6-D7目录下的那些例子,边动手做边学习吧。

研究的第一个例子是PlayWin。研究了一下,主要使用TFilterGraph和TVideoWindow来完成。
TFilterGraph是DSPack中的核心类,其他类都要围绕着它,但是怎么理解它还不清楚。TVideoWindow是个显示播放视频的控件。这两个类的关系好像是数据库控件中Dataset控件和DBGrid控件的关系一样。

看得差不多后,自己照葫芦画瓢仿制一个。

1. 新建一个应用,在界面上先放4、5个按钮。
2. 在控件面板上选择DSPack那页,把前两个控件(TFilterGraph和TVideoWindow)在窗口上各放一个。
3. 关联
   选中VideoWindow1控件,在属性窗口中将FilterGraph属性设置为FilterGraph1。
   选中FilterGraph1控件,确认属性窗口中的Mode属性为gmNormal。

4.为Form1增加一个onCreate事件处理程序。
内容为:
    if not FilterGraph1.Active then FilterGraph1.Active := true;
    FilterGraph1.ClearGraph;
    FilterGraph1.RenderFile('E:\v\951.wmv'); // 简化一点,这里用你本地硬盘上的一个视频文件

5. 为Form1增加一个onCloseQuery事件处理程序。
内容为:
    FilterGraph1.Active := false ;

6.把button1的Caption改为Start,并增加一个OnClick事件
内容为:
    FilterGraph1.Play;

运行一下,就可以播放了。下面再增加几个功能按钮,如pause、stop。

7. 把button2的Caption改为Pause,并增加一个OnClick事件
内容为:
   FilterGraph1.Pause;


8. 把button3的Caption改为Stop,并增加一个OnClick事件
内容为:
    FilterGraph1.stop;

可以看出4-8步都是调用了TFilterGraph类的方法。

下面,再增加个全屏功能吧。
9. 把button4的Caption改为FullScreen,并增加一个OnClick事件
内容为:
    VideoWindow1.FullScreen :=true ;
    
10. 为VideoWindow1增加一个OnClick事件
内容为:
if videowindow1.FullScreen then
    videowindow1.FullScreen := false ; //退出全屏方式

一般的视频播放创窗口都有一个进度条,现在我们也来加一个。
A.1. 在DSPack控件面板上选择倒数第2个控件(TDSTrackBar),放到在窗口上。
A.2. 关联
   选中DSTrackBar1控件,在属性窗口中将FilterGraph属性设置为FilterGraph1。(这一步好像很熟悉哦)

重新运行程序,你就会看到一个进度条,并且能够使用这一进度条来调整播放的进度。

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.035018920898438 seconds