dspack 如何播放流 RT 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dfm 文件源码object Form1: TForm1 Left = 257 Top = 268 BorderStyle = bsToolWindow Caption = 'DSPlayer Async StreamSource Example ( Coder@dsplayer , www.d' + 'splayer.de )' ClientHeight = 58 ClientWidth = 477 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False Position = poScreenCenter OnClose = FormClose PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 16 Top = 16 Width = 75 Height = 25 Caption = 'open' TabOrder = 0 OnClick = Button1Click end object Button2: TButton Left = 96 Top = 16 Width = 75 Height = 25 Caption = 'Play' TabOrder = 1 OnClick = Button2Click end object Button3: TButton Left = 176 Top = 16 Width = 75 Height = 25 Caption = 'Pause' TabOrder = 2 OnClick = Button3Click end object Button4: TButton Left = 256 Top = 16 Width = 75 Height = 25 Caption = 'Stop' TabOrder = 3 OnClick = Button4Click end object Button5: TButton Left = 344 Top = 16 Width = 105 Height = 25 Caption = 'PropertyPage' TabOrder = 4 OnClick = Button5Click end object OpenDialog1: TOpenDialog Left = 448 Top = 16 endend//pas 文件源码 unit DSPlayerAsyncStreamSourceExample;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DirectShow9, ActiveX, StdCtrls, DSUtil;type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private procedure NilAll(); public end;IStreamLoad = interface(IUnknown) ['{3E0FA056-926C-43d9-BA18-EF16E980913B}'] function LoadFromStream(f_Stream: TStream) : HRESULT; stdcall;end;var Form1: TForm1; g_GraphBuilder : IGraphBuilder = NIL; g_MediaControl : IMediaControl = NIL; g_DSPlayerFileSource : IBaseFilter = NIL; g_StreamSource : IStreamLoad = NIL; g_Pin : IPin = NIL; g_count : integer = 0; g_FileStream : TFileStream = NIL;const CLSID_DSPlayerAsyncSource : TGUID = '{3E0FA044-926C-42d9-BA12-EF16E980913B}'; IID_IStreamLoad : TGUID = '{3E0FA056-926C-43d9-BA18-EF16E980913B}'; pinID = 'StreamOut';implementation{$R *.dfm}procedure TForm1.NilAll();begin if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Stop); if Assigned(g_Pin) then g_Pin := nil; if Assigned(g_StreamSource) then g_StreamSource := nil; if Assigned(g_DSPlayerFileSource) then g_DSPlayerFileSource := nil; if Assigned(g_MediaControl) then g_MediaControl := nil; if Assigned(g_GraphBuilder) then g_GraphBuilder := nil;end;procedure TForm1.Button1Click(Sender: TObject);begin if not OpenDialog1.Execute then exit; NilAll; CheckDSError(CoCreateInstance(TGUID(CLSID_FilterGraph), NIL, CLSCTX_INPROC, TGUID(IID_IGraphBuilder), g_GraphBuilder)) ; CheckDSError(g_GraphBuilder.QueryInterface(IID_IMediaControl, g_MediaControl)); CheckDSError(CoCreateInstance(CLSID_DSPlayerAsyncSource,NIL, CLSCTX_INPROC, IID_IBaseFilter, g_DSPlayerFileSource)); CheckDSError(g_DSPlayerFileSource.QueryInterface(IID_IStreamLoad, g_StreamSource)); if g_FileStream <> nil then g_FileStream.Free; g_FileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead); CheckDSError(g_StreamSource.LoadFromStream(g_FileStream)); CheckDSError(g_DSPlayerFileSource.FindPin(pinID, g_Pin)); CheckDSError(g_GraphBuilder.AddFilter(g_DSPlayerFileSource, StringToOleStr('DSPlayer Async FileSource'))); CheckDSError(g_GraphBuilder.Render(g_Pin)); CheckDSError(g_MediaControl.Run); if g_count = 0 then begin g_count := g_count+1; CheckDSError(dsutil.ShowFilterPropertyPage(0,g_DSPlayerFileSource)); end;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin NilAll;end;procedure TForm1.Button2Click(Sender: TObject);begin if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Run);end;procedure TForm1.Button3Click(Sender: TObject);begin if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Pause);end;procedure TForm1.Button4Click(Sender: TObject);begin if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Stop);end;procedure TForm1.Button5Click(Sender: TObject);begin CheckDSError(dsutil.ShowFilterPropertyPage(0,g_DSPlayerFileSource));end;end. 双线程中主线程创建的对象,执行在子线程, self成了空 idftp隔几分钟后会自动中断与ftp的连接是怎么回事? Delphi对VC的调用。。。 怎么做出象delphi5那样可以脱动的主菜单? ADOQUERY中出现“造型说明无效的字符串”的问题 高精度计算sin(x),sqrt(x)? 一个非常奇怪的问题,大家都来看看 请教:关于grid的问题? delphi能不能作网页上CGI 关于数据仓库问题 用过regware4控件的请进来 请教个delphi问题
dfm 文件源码
object Form1: TForm1
Left = 257
Top = 268
BorderStyle = bsToolWindow
Caption =
'DSPlayer Async StreamSource Example ( Coder@dsplayer , www.d' +
'splayer.de )'
ClientHeight = 58
ClientWidth = 477
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 16
Top = 16
Width = 75
Height = 25
Caption = 'open'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 96
Top = 16
Width = 75
Height = 25
Caption = 'Play'
TabOrder = 1
OnClick = Button2Click
end
object Button3: TButton
Left = 176
Top = 16
Width = 75
Height = 25
Caption = 'Pause'
TabOrder = 2
OnClick = Button3Click
end
object Button4: TButton
Left = 256
Top = 16
Width = 75
Height = 25
Caption = 'Stop'
TabOrder = 3
OnClick = Button4Click
end
object Button5: TButton
Left = 344
Top = 16
Width = 105
Height = 25
Caption = 'PropertyPage'
TabOrder = 4
OnClick = Button5Click
end
object OpenDialog1: TOpenDialog
Left = 448
Top = 16
end
end
//pas 文件源码
unit DSPlayerAsyncStreamSourceExample;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DirectShow9, ActiveX, StdCtrls, DSUtil;type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
procedure NilAll();
public
end;IStreamLoad = interface(IUnknown) ['{3E0FA056-926C-43d9-BA18-EF16E980913B}']
function LoadFromStream(f_Stream: TStream) : HRESULT; stdcall;
end;var
Form1: TForm1;
g_GraphBuilder : IGraphBuilder = NIL;
g_MediaControl : IMediaControl = NIL;
g_DSPlayerFileSource : IBaseFilter = NIL;
g_StreamSource : IStreamLoad = NIL;
g_Pin : IPin = NIL;
g_count : integer = 0;
g_FileStream : TFileStream = NIL;const
CLSID_DSPlayerAsyncSource : TGUID = '{3E0FA044-926C-42d9-BA12-EF16E980913B}';
IID_IStreamLoad : TGUID = '{3E0FA056-926C-43d9-BA18-EF16E980913B}';
pinID = 'StreamOut';
implementation{$R *.dfm}procedure TForm1.NilAll();
begin
if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Stop);
if Assigned(g_Pin) then g_Pin := nil;
if Assigned(g_StreamSource) then g_StreamSource := nil;
if Assigned(g_DSPlayerFileSource) then g_DSPlayerFileSource := nil;
if Assigned(g_MediaControl) then g_MediaControl := nil;
if Assigned(g_GraphBuilder) then g_GraphBuilder := nil;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if not OpenDialog1.Execute then exit;
NilAll;
CheckDSError(CoCreateInstance(TGUID(CLSID_FilterGraph), NIL, CLSCTX_INPROC,
TGUID(IID_IGraphBuilder), g_GraphBuilder)) ;
CheckDSError(g_GraphBuilder.QueryInterface(IID_IMediaControl, g_MediaControl));
CheckDSError(CoCreateInstance(CLSID_DSPlayerAsyncSource,NIL, CLSCTX_INPROC,
IID_IBaseFilter, g_DSPlayerFileSource));
CheckDSError(g_DSPlayerFileSource.QueryInterface(IID_IStreamLoad,
g_StreamSource));
if g_FileStream <> nil then g_FileStream.Free;
g_FileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
CheckDSError(g_StreamSource.LoadFromStream(g_FileStream));
CheckDSError(g_DSPlayerFileSource.FindPin(pinID, g_Pin));
CheckDSError(g_GraphBuilder.AddFilter(g_DSPlayerFileSource,
StringToOleStr('DSPlayer Async FileSource')));
CheckDSError(g_GraphBuilder.Render(g_Pin));
CheckDSError(g_MediaControl.Run);
if g_count = 0 then begin
g_count := g_count+1;
CheckDSError(dsutil.ShowFilterPropertyPage(0,g_DSPlayerFileSource));
end;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
NilAll;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Run);
end;procedure TForm1.Button3Click(Sender: TObject);
begin
if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Pause);
end;procedure TForm1.Button4Click(Sender: TObject);
begin
if Assigned(g_MediaControl) then CheckDSError(g_MediaControl.Stop);
end;procedure TForm1.Button5Click(Sender: TObject);
begin
CheckDSError(dsutil.ShowFilterPropertyPage(0,g_DSPlayerFileSource));
end;end.