我在学习用dspack控件制作播放器,想让播放器连续播放的时候,用了在FilterGraph的onGraphComplete事件,可是一点运行就出现错误,说IBaseFilter没声明,无法编译,这要怎么解决?代码如下:
一个是按钮事件:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
filtergraph1.ClearGraph;
filtergraph1.RenderFile('1.dat');
filtergraph1.Play;
end;当加上FilterGraph的onGraphComplete事件后就出现问题了:
procedure TForm1.FilterGraph1GraphComplete(sender: TObject;
Result: HRESULT; Renderer: IBaseFilter);
begin
filtergraph1.ClearGraph;
filtergraph1.RenderFile('2.dat');
filtergraph1.Play;
end;问题就出现在
type
TForm1 = class(TForm)
FilterGraph1: TFilterGraph;
VideoWindow1: TVideoWindow;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FilterGraph1GraphComplete(sender: TObject; Result: HRESULT;
Renderer: IBaseFilter);(就这一行)
错误提示是:
[Error]Unit1.pas(16):Undeclared identifier:"IBaseFilter"请朋友帮我看看怎么解决,谢谢。
一个是按钮事件:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
filtergraph1.ClearGraph;
filtergraph1.RenderFile('1.dat');
filtergraph1.Play;
end;当加上FilterGraph的onGraphComplete事件后就出现问题了:
procedure TForm1.FilterGraph1GraphComplete(sender: TObject;
Result: HRESULT; Renderer: IBaseFilter);
begin
filtergraph1.ClearGraph;
filtergraph1.RenderFile('2.dat');
filtergraph1.Play;
end;问题就出现在
type
TForm1 = class(TForm)
FilterGraph1: TFilterGraph;
VideoWindow1: TVideoWindow;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FilterGraph1GraphComplete(sender: TObject; Result: HRESULT;
Renderer: IBaseFilter);(就这一行)
错误提示是:
[Error]Unit1.pas(16):Undeclared identifier:"IBaseFilter"请朋友帮我看看怎么解决,谢谢。
解决方案 »
- 大家现在都用什么制作安装程序*********************
- 如何实现智能文字录入?
- CSDN還有人會解決這個問題嘛,貼出來這麼久,怎沒有一個人知道!!!!!!!!!!!
- xml显示问题(XSL)
- MSComm在Delphi7里怎么不见了!!!!
- (800分)求Bold for Delphi R4.0的license
- 请教在DELPHI中如何调用XP自带的传真用来发送和接收传真
- (续几?不知道,1吧)刚才想散分,不过不能给超过100分。想开多个贴,结果只开了一个,然后荣誉分只有81分了……(10分钟后结贴)
- 有没有谁写过b/s结构的程序
- 关于Delphi5.0的QReport里的QuickRep1自定义报表
- 菜鸟问题初学者 RzEdit, RzSpnEdt这2个怎么应用在线等
- 偷笑,散分
我试了,不行啊。
你的单元文件需要用到一些系统文件,它定义uses后面//你的单元名
unit
//引用的单元
uses
windows,...//这里添加IBaseFilter所在的单元,在帮助里找出来
//类名
type
....
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,shlobj, ExtCtrls,FlatBars, FlatBtns, FlatUtils, FlatPanel;类似这样
上面代码少了interface
上面的单元楼主看看哪个不在,试着添加下,在里面某个单元里,因为是别的地方拷贝的,具体哪个我没验证
没用过DIRECTSHOW SDK,只提供参考
你如果在找不到,去网上下载一个。这个是声明
IBaseFilter = interface(IMediaFilter)
['{56A86895-0AD4-11CE-B03A-0020AF0BA770}']
(*** IBaseFilter methods ***)
function EnumPins(out ppEnum: IEnumPins): HResult; stdcall;
function FindPin(Id: PWideChar; out ppPin: IPin): HResult; stdcall;
function QueryFilterInfo(out pInfo: TFilterInfo): HResult; stdcall;
function JoinFilterGraph(pGraph: IFilterGraph; pName: PWideChar): HResult; stdcall;
function QueryVendorInfo(out pVendorInfo: PWideChar): HResult; stdcall;
end;
implementation
uses DirectShow9;
{$R *.dfm}看了你们说的才知道要放在interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, Buttons,DirectShow9 , DSPack, Menus, ExtCtrls, ComCtrls;
这样就行了。谢谢大家,真的非常感谢大家的热心帮助。只是我的分不多,所以只能分点拉。