问题: 各位帮我看看这个Window Media Encoder SDK的问题 ( 积分: 100 )
分类: 多媒体
来自:do
nny2000, 时间: 2003-07-12 23:13:00, ID: 2024764
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WMEncoderLib_TLB, StdCtrls, ActiveX;
type
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Encoder:WMEncoder;
SrcGrpColl:IWMEncSourceGroupCollection;
SrcGrp:IWMEncSourceGroup;
SrcVid,SrcAud:IWMEncSource;
EncodeFile:IWMEncFile;
ProColl:IWMEncProfileCollection;
// Pro :IWMEncProfile;
// i:integer;
begin
Encoder:=CoWMEncoder.Create;
SrcGrpColl:=Encoder.SourceGroupCollection;
SrcGrp:=SrcGrpColl.Add('SG_1');
SrcVid:=SrcGrp.AddSource(WMENC_VIDEO);
SrcAud:=SrcGrp.AddSource(WMENC_AUDIO);
SrcVid.SetInput('ScreenCap://ScreenCapture1','','');
SrcAud.SetInput('DEVICE://Default_Audio_Device',' ',' ');
EncodeFile:=Encoder.File_;
EncodeFile.LocalFileName:='C:/a.wmv';
ProColl:=Encoder.ProfileCollection;
{ for I:=1 to ProColl.Count-1do
begin
showmessage(ProColl.Item(i).Descrip);
end;
}
SrcGrp.Set_Profile(ProColl.item(ComboBox1.ItemIndex));
Encoder.PrepareToEncode(true);
Encoder.Start;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Encoder:WMEncoder;
ProColl:IWMEncProfileCollection;
i:integer;
begin
Encoder:=CoWMEncoder.Create;
ProColl:=Encoder.ProfileCollection;
for I:=0 to ProColl.Count-1do
begin
ComboBox1.Items.Add(ProColl.Item(i).Name);
end;
ComboBox1.ItemIndex:=0;
end;
end.
使用的是9系列的SDK,程序编译通过,但是开始捕捉的时候,出错:“找不到可用于指定源的有效插件”。我搞了一天都没有明白什么原因
来自: jog81, 时间: 2003-07-14 22:54:00, ID: 2028903
不是很懂,只是我看你的代码,怎么程序启动时创建了控件,然后点击按键时又创建该控件呢?把下面的代码提前到implementation前试试!
Encoder:WMEncoder;
ProColl:IWMEncProfileCollection;
i:integer;
来自:do
nny2000, 时间: 2003-07-15 10:07:00, ID: 2029600
这个地方是贴上来得时候没有改得,但不影响。 在C#中完全正常,但是在Delphi中一样得实现就是要报上面得错误
来自: wbtvc, 时间: 2003-07-17 10:26:00, ID: 2035936
是声音设备的问题吧?
把SrcAud:=SrcGrp.AddSource(WMENC_AUDIO);
SrcAud.SetInput('DEVICE://Default_Audio_Device',' ',' ');
这两行去掉应该就可以了,试试
来自:do
nny2000, 时间: 2003-07-28 16:41:00, ID: 2065901
多人接受答案了。
得分大富翁: jog81-50,wbtvc-50,