如何将AVI文件放入RES中播放(100分)

  • 主题发起人 主题发起人 fxb
  • 开始时间 开始时间
F

fxb

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将AVI文件放入RES中播放,播放时用MediaPlayer1
 
用纯文本写一个.RC文件,如:
AVI xx xx.avi
大概是这样吧,我有点记不得了
然后用LoadFromResource取出,不过我现在不是很确定,好象在实际操作中还有点别的
如果你需要,我下次把源码发给你 ,我上次做的时候是利用BC++附带的WorkShop把它加入
.res中
 
对对,我记起来了,确实如UNREAL所说的
 
用MediaPlayer播放,用Animate只能播放无声音的AVI,Animate可以读出RES中的
AVI。但用用MediaPlayer播放怎么办呢?
 

你可以使用资源文件保存AVI文件,步骤如下:
1、创建新的RES文件(Resource Workshop就可以,我自己用过的);
2、把AVI加入到RES的PROJECT中,作为一NEW TYPE ,比如“AVI”;
注意:在保存PROJECT时把名字“AVI-1”重命名成通用的名字,比如ABOUT;
3、保存PROJECT,比如取名为 RORY.RES;
4、回到 Delphi , 用$R加入RES文件比如 {$R 'C:/AVI/RORY.RES'} ;
5、编程中, 设置TANIMATE的RESNAME属性. (不是刚才的类型名 AVI)

Example:
Animate1.RESName := 'About';
Animate1.Active := True;
如果你非要在MEDIAPLAYER中播放AVI(因为TANIMATE只能播放无声音,非压缩的AVI)
,你可能需要参考下列语句了:
hResInfo:=FindResource(HInstance,'About','AVI');
hRes:=LoadResource(HInstance,hResInfo);
if hRes>32 then

begin

ptrSound:=LockResource(hRes);
MediaPlayer1.FileName:=(string)ptrSound;

end;

其中定义如下:
var
hResInfo:THandle;
PtrSound:PChar;
hRes:THandle;
当然,往RES文件中加入AVI可能会有别的方法,
比如:建一个MyRes.rc,写入WAVE1 WAVE PRELOAD FIXED PURE "1.WAV" ,存盘后
再用brcc32.exe MyRes.rc可以把1.wav加入MyRes.Res中。
 
to lvxq:
谢谢您的帮助,不过这句是怎样用的:
MediaPlayer1.FileName:=(string)ptrSound;

如该成MediaPlayer1.FileName:=string(ptrSound);也不对,得到的文件名不知道是什么
(乱码)
另外,您在建立RES用了WAVE1 WAVE PRELOAD FIXED PURE "1.WAV"
中间的“WAVE PRELOAD FIXED PURE ”是什么意思?
 
后面的我也没试过,不过我觉得应该是这样的,DELPHI我很久没用了,
我到时试一下,不过你最好给我你的E-MAIL地址,因为这教育网实在
太慢了,直接发到我的信箱好了
 
ton lxvq:
我的MAIL:fxb2000@bentium.net
 
LoadBitmap有点问题是吧?资源文件不能超过256色的?但在调用时其返回值为0,
不知怎么搞得,书上说直接得到其句柄就行!是不是要用LoadResource函数才行,谢谢!
 
是的,否则你可以给它一个ID,那样可以用别的
 
接受答案了.
 
后退
顶部