ShockwaveFlash1 循環flash
--------------------------
我現在有個數組獲得flash文件夾下所有的flash文件 FlashFileList[i]
例如FlashFileList[0] 就是vert.swf flash, FlashFileList[1] 就是test.swf flash ,
現在有timer1控件。
顯示falsh的代碼是這樣的
shockwaveflash1.Movie := extractfilepath(application.ExeName) + 'flash\' + FlashFileList[0];
shockwaveflash1.Play;
現在我想它循環播放文件夾下的flash。該怎么辦?WindowsMediaPlayer1 循環movie
--------------------------
我現在有個數組獲得flash文件夾下所有的movie文件 MovieFileList[i]
例如MovieFileList[0] 就是testmov.rmvb movie, MovieFileList[1] 就是test.rmvb movie ,
現在有timer2控件。
顯示falsh的代碼是這樣的
WindowsMediaPlayer1.URL:=extractfilepath(application.ExeName) + 'movie\' + MovieFileList[0];
WindowsMediaPlayer1.Controls.play;
現在我想它循環播放文件夾下的movie。該怎么辦?
--------------------------
我現在有個數組獲得flash文件夾下所有的flash文件 FlashFileList[i]
例如FlashFileList[0] 就是vert.swf flash, FlashFileList[1] 就是test.swf flash ,
現在有timer1控件。
顯示falsh的代碼是這樣的
shockwaveflash1.Movie := extractfilepath(application.ExeName) + 'flash\' + FlashFileList[0];
shockwaveflash1.Play;
現在我想它循環播放文件夾下的flash。該怎么辦?WindowsMediaPlayer1 循環movie
--------------------------
我現在有個數組獲得flash文件夾下所有的movie文件 MovieFileList[i]
例如MovieFileList[0] 就是testmov.rmvb movie, MovieFileList[1] 就是test.rmvb movie ,
現在有timer2控件。
顯示falsh的代碼是這樣的
WindowsMediaPlayer1.URL:=extractfilepath(application.ExeName) + 'movie\' + MovieFileList[0];
WindowsMediaPlayer1.Controls.play;
現在我想它循環播放文件夾下的movie。該怎么辦?
解决方案 »
- 如何用语句修改ACCESS2000字段允许空字符串?
- 如何在vista-uac開啓情況下,讀寫C:\Program Files
- 问一个操作数据库的问题,比较简单,但是很奇怪
- delphi 2005
- adodataset为什么会提示找不到字段阿
- 我用HOOK截获过鼠标键盘消息!如何用HOOK截获游戏上的文字呀!!???
- TSQLConnection支持oracle11g吗?
- 请问用adoquery如何取得有返回值的存储过程
- 有什么好方法判断一个表中哪条记录是最新的?
- 得到其他窗口中 ListBox 内的内容
- 窗体从最小化到正常状态这一过程究竟会不会触发OnShow事件?
- Delphi7创建什么程序可以画坐标波浪图呢?
unit uFlash;interfaceuses
windows, SysUtils, Classes, Zlib;type
TBitWidth = Integer;
TSWFRect = packed record
Xmin: Integer; // in twips
Xmax: Integer; // in twips
Ymin: Integer; // in twips
Ymax: Integer; // in twips
end; TSWFColor = packed record
R : Byte;
G : Byte;
B : Byte;
RGB : string;
end; TSWFHeader = packed record
Signature: array[0..2] of char;
Version: byte;
FileLength: cardinal;
FrameSize: TSWFRect;
FrameRate: byte;
FrameRateRemainder: byte;
FrameCount: cardinal;
BkColor : TSWFColor;
end; TTagHandle = record
ID : Integer;
Length : Integer;
HandleLength : Integer;
end;
function GetSwfFileHeader(const FileName: string; var Header: TSWFHeader): boolean;implementationfunction ReadNBits(const Buffer; Position: longint; Count: TBitWidth): longint;
var
I, B: longint;
begin
Result := 0;
B := 1 shl (Count - 1);
for I := Position to Position + Count - 1 do
begin
if (PByteArray(@Buffer)^[I div 8] and (128 shr (I mod 8))) <> 0 then
Result := Result or B;
B := B shr 1;
end;
end;function ReadTagHandle(const Buffer; Position : Longint): TTagHandle;
var
v : Smallint;
begin
v := PSmallint(@PByteArray(@Buffer)^[Position])^;
Result.ID := v shr 6;
v := v shl 10;
Result.Length := v shr 10;
if Result.Length = $FFFFFF then
begin
//长tag
Result.HandleLength := 6;
Result.Length := PInteger(@PByteArray(@Buffer)^[Position + 2])^;
end
else
Result.HandleLength := 2;
end;function GetSwfFileHeader(const FileName: string; var Header: TSWFHeader): boolean;
const
BuffSize = 64;
var
Buffer: PByteArray;
NBitsField: byte;
Poz: longword;
FileStream: TFileStream;
MemStream: TMemoryStream;
ZStream: TDecompressionStream;
Tag : TTagHandle;
begin
Result := False;
if not FileExists(FileName) then
Exit;
FileStream := TFileStream.Create(FileName, fmOpenRead);
try
FileStream.Position := 0;
if FileStream.Size > 22 then
begin
GetMem(Buffer, BuffSize);
try
FileStream.Read(Header, 8);
if (Header.Signature = 'CWS') and (Header.Version >= 6) then
begin
Result := True;
MemStream := TMemoryStream.Create;
try
MemStream.CopyFrom(FileStream, FileStream.Size - 8);
MemStream.Position := 0;
ZStream := TDecompressionStream.Create(MemStream);
try
ZStream.Read(Buffer^, BuffSize);
finally
ZStream.Free;
end;
finally
MemStream.Free;
end;
end
else
begin
FileStream.Read(Buffer^, BuffSize);
Result := Header.Signature = 'FWS';
end; if Result then
with Header do
begin
Poz := 0;
NBitsField := TBitWidth(ReadNBits(Buffer^, Poz, 5));
Inc(Poz, 5);
FrameSize.Xmin := Integer(ReadNBits(Buffer^, Poz, NBitsField));
Inc(Poz, NBitsField);
FrameSize.Xmax := Integer(ReadNBits(Buffer^, Poz, NBitsField));
Inc(Poz, NBitsField);
FrameSize.Ymin := Integer(ReadNBits(Buffer^, Poz, NBitsField));
Inc(Poz, NBitsField);
FrameSize.Ymax := Integer(ReadNBits(Buffer^, Poz, NBitsField));
Inc(Poz, NBitsField);
NBitsField := Poz mod 8;
Poz := Poz div 8;
if (NBitsField > 0) then
Inc(Poz);
FrameRateRemainder := Buffer^[Poz]; // 8.[8]
FrameRate := Buffer^[Poz + 1];
FrameCount := Buffer^[Poz + 2] or (Buffer^[Poz + 3] shl 8);
Inc(Poz, 4);
Tag := ReadTagHandle(Buffer^, poz);
while Tag.ID <> 9 do
begin
Inc(Poz, Tag.Length + Tag.HandleLength);
Tag := ReadTagHandle(Buffer^, Poz);
end;
BkColor.R := Buffer^[Poz + 2];
BkColor.G := Buffer^[Poz + 3];
BkColor.B := Buffer^[Poz + 4];
BkColor.RGB := StringReplace(
Format('%2x%2x%2x', [BkColor.R, BkColor.G, BkColor.B]),
' ', '0', [rfReplaceAll]);
end; finally
FreeMem(Buffer);
end;
end;
finally
FileStream.Free;
end;
end;end.