社区
Delphi
帖子详情
用Delphi播放Flash的问题...
bluesky_521
2002-09-23 09:08:31
如何用Delphi播放Flash,并能判断Flash影片播放完毕?
...全文
471
8
打赏
收藏
用Delphi播放Flash的问题...
如何用Delphi播放Flash,并能判断Flash影片播放完毕?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bluesky_521
2002-11-07
打赏
举报
回复
多谢大家支持,特别感谢crazyz(乘风)和 liang_z(千山一刀之忍者神龟)
D_Q
2002-09-26
打赏
举报
回复
总针探测不准确的原因是它的“洋葱皮”效果 呵呵
lf43
2002-09-26
打赏
举报
回复
up
bluesky_521
2002-09-26
打赏
举报
回复
To D_Q(A.Dai)(阿呆):
麻烦你解释一下“洋葱皮”,先谢了。
===================
To crazyz(乘风):
这段程序我试了,非常棒,多谢了。如果有SwfToExe程序,烦劳你再发给小弟。
crazyz
2002-09-25
打赏
举报
回复
这有一个Ext2Ext的函数可将.exe文件转为.Swf的文件。
function ExeToSwf(ExeName: string): string;
var
SourceStream, DestinyStream: TFileStream; // 分别处理EXE、SWF文件的文件流
SwfFileSize: Cardinal; // SWF文件的大小
SWfName: string;
begin
if lowerCase(ExtractFileExt(ExeName))<>'.exe' then exit;
Result := '';
// 打开EXE形式的源文件
SourceStream := TFileStream.Create(ExeName,fmOpenRead);// or fmShareExclusive);
try
// 读取文件标志
SourceStream.Seek(- 2 * sizeof(integer), soFromEnd);
SourceStream.ReadBuffer(SwfFileSize, sizeof(integer));
// 判断读到的文件标志是否和FA123456相同
// 借此判断是否是Macromedia官方格式的Flash文件
if SwfFileSize = $FA123456 then
begin
// 读取SWF文件的大小
SourceStream.ReadBuffer(SwfFileSize, sizeof(SwfFileSize));
SourceStream.Seek(- SwfFileSize - 2 * sizeof(integer), soFromEnd);
// 打开目标SWF文件
SwfName := ChangeFileExt(ExeName,'.swf');
DestinyStream := TFileStream.Create(SwfName, fmCreate);
try
// 从EXE文件流中读取数据
DestinyStream.CopyFrom(SourceStream, SwfFileSize);
Result := SwfName;
finally
// OK,释放文件流
DestinyStream.Free;
end;
end
else
ShowMessage('Unknown type of executable flash file!');
finally
// OK,释放文件流
SourceStream.Free;
end;
end;
bluesky_521
2002-09-25
打赏
举报
回复
谢谢上面两位的支持,我自己也做了一些尝识。
判断一个Flash影片是否播放完毕,理论上(我想)应该是
MyShochwaveFlash.TotalFrames=MyShockwaveFlash.CurrentFrame时,
但是我发现,影片总是在最后1-3祯时就停止了,所以实际上我是这样判断的:
MyShockwaveFlash.TotalFrames-MyShockwaveFlash.CurrentFrame<=3时。
//______________________________________________________________
我又遇到了一个问题:现在好多Flash影片都作成了.exe文件,
我如何在程序中播放它,又能判断它播放结束了呢?
请高手指点...
liang_z
2002-09-23
打赏
举报
回复
delphi里播放flash
在flash大行其道的今天,是否想过在你的程序里也加入几幅flash炫一炫?我们就来试试,前提
是你要装有flash播放软件(你的IE能显示flash),IE之所以能显示flash是安装了一个swflash.ocx
控件,由Macromedia, Inc.提供,我们也用它了,win98在$Windows\System\Macromed\Flash,win2k
在$Winnt\System32\Macromed\Flash下。ActiveX控件在windows里是通用的,delphi当然也支持,打
开你的delphi我们开始了。选择菜单Component --> Import ActiveX Control,选择SWFlash.OCX 文
件,安装,完成后在ActiveX面板里出现TShockwaveFlash控件,这是delphi对SWFlash.OCX的封装,现
在我们就可以用这个控件来播放flash了。拖一个过来放在form上,指定其Movie属性为d:\test.SWF,
按F9,一切OK。delphi编程就是这么轻松、自在。
TShockwaveFlash主要属性、方法、事件
属性:
ReadyState - 读一个flash文件时的状态。0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete.
TotalFrames - 总帧数,只有当ReadyState = 4时才能访问。
FrameNum - 当前播放的帧。
Playing - 播放或暂停一个flash.
Quality - 指定当前渲染的质量,0=Low, 1=High, 2=AutoLow, 3=AutoHigh
ScaleMode - 缩放模式,0=ShowAll, 1= NoBorder, 2 = ExactFit。
AlignMode - 对齐模式,Left=+1, Right=+2, Top=+4, Bottom=+8。
BackgroundColor - 背景色,red*65536+green*256+blue,-1为默认颜色。
Loop - 是否循环。
Movie - 指定播放的flash文件路径,可以为一个URL.
方法:
Play() - 开始播放动画。
Stop() - 停止播放动画。
Back() - 播放前一帧动画。
Forward() - 播放后一帧动画。
Rewind() - 播放第一帧动画。
SetZoomRect(int left, int top, int right, int bottom) - 设置缩放的区域
Zoom(int percent) - 按百分比缩放。
Pan(int x, int y, int mode) - 缩放播放面板。模式为:0-按像数,1-按窗口百分比
事件:
OnProgress(int percent) - 读取一个flash时触发。
OnReadyStateChange(int state) - 状态改变时触发。states 可以为 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete。
具体帮助请参见http://www.macromedia.com/support/flash/
此为本人心血来潮之作,不足之处恳请指正,欢迎有兴趣者共同探讨(ypy@yeah.net)。
houwf
2002-09-23
打赏
举报
回复
播放用shockwave插件,至于判断小的就不知道了。
在
Delphi
里
播放
Flash
本文介绍如何在
Delphi
应用程序中通过TWebBrowser或Shockwave
Flash
Object控件嵌入并控制
Flash
(SWF)文件的
播放
,涵盖组件注册、ActiveX调用、事件响应及常见兼容性
问题
处理,适用于
Delphi
7至XE系列版本。
delphi
里
播放
flash
本文介绍了在
Delphi
里
播放
Flash
的方法,前提是装有
Flash
播放
软件。通过导入ActiveX控件SW
Flash
.OCX,在
Delphi
中封装为TShockwave
Flash
控件来
播放
Flash
。还详细列举了该控件的主要属性、方法和事件,如ReadyState、Play()、OnProgress等。
在
delphi
中使用
flash
控件
本文介绍了
FLASH
的特点,如体积小、可边下载边
播放
等。重点讲解了在
Delphi
中使用
Flash
控件的方法,包括安装插件到已有包或新建包,在窗体中添加相关控件并设置属性,还给出了控制
Flash
播放
、停止、获取总帧数及跳帧
播放
的代码示例。
delphi
播放
flash
本文介绍如何使用
Flash
播放
器控件的各种方法实现对
Flash
影片的控制,包括
播放
、暂停、缩放等操作,并通过事件监听实现影片与外部应用的交互。
Delphi
播放
Gif和
Flash
动画的方法
本文介绍如何使用
Delphi
编程语言实现GIF动画和
Flash
文件的
播放
。通过简单的代码示例展示了如何利用
Delphi
的WebBrowser组件显示GIF动画,以及如何使用TShockwave
Flash
控件
播放
Flash
文件。
Delphi
5,943
社区成员
262,942
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章