如何获取 swf 文件中的总帧数?

Posted

技术标签:

【中文标题】如何获取 swf 文件中的总帧数?【英文标题】:How can i get total number of frames in swf file? 【发布时间】:2012-11-25 10:00:49 【问题描述】:

我将ppt转换为swf格式,所以我需要找到该swf文件中的总帧数,如何得到它?以及如何转到给定 swf 文件的最后一帧?

示例:这里我给出了 goto provious 和 next frame 的源代码,但是我仍然没有得到第一帧,我怎么能得到它?有没有什么解决办法指导我...

这里我怎样才能得到总帧数?请解释一下...提前谢谢..

<html>
<head>
<script language="javascript">

function getFlashMovieObject(myFlashMovie)

if (window.document[myFlashMovie]) 

return window.document[myFlashMovie];

if (navigator.appName.indexOf("Microsoft Internet")==-1)

if (document.embeds && document.embeds[myFlashMovie])
  return document.embeds[myFlashMovie]; 

else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)

return document.getElementById(movieName);



//for Previous frame.....
function PrevFrameFlashMovie()
 
var flashMovie=getFlashMovieObject("myFlashMovie");
var currentFrame=flashMovie.TGetProperty("/",4);
var nextFrame=parseInt(currentFrame);
var prevfram =nextFrame-4;
flashMovie.GotoFrame(prevfram);
flashMovie.Play();


//for Next frame.....
function PlayFlashMovie()

var flashMovie=getFlashMovieObject("myFlashMovie");
flashMovie.Play();
//embed.nativeProperty.anotherNativeMethod();


</script>
</head>

<body>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="595" HEIGHT="460" id="myFlashMovie" style="background:#fff;">
<PARAM NAME=movie VALUE="/file.swf"><PARAM NAME=quality VALUE=autolow >

<EMBED src="/file.swf" quality="autolow" wmode="transparent"  autoplay="false" WIDTH="595" HEIGHT="460" NAME="myFlashMovie" ALIGN="middle" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" style="background: none repeat scroll 0 0 #FFFFFF;"></EMBED>
<PARAM NAME=wmode VALUE=transparent><param name="allowScriptAccess" value="sameDomain"/>     <param value="false" name="autoplay" /><param name="allowFullScreen" value="True" />

</OBJECT>




<input type="button" onClick="PrevFrameFlashMovie();" value="PreviousFrame" name="Previous"> 

<input type="button" onclick="PlayFlashMovie();" name="Play" value="NextFrame >>"> 

</body>
</html>

【问题讨论】:

【参考方案1】:

加载 SWF 后,您可以使用 _totalframes 属性获取 total_no_of_frmaes。

var totalFrames=flashMovie._totalframes

【讨论】:

第一帧可以使用 GotoFrame(1) 但它不起作用..滑块控件转到 frame1 但幻灯片没有移动到第一张幻灯片..当前幻灯片仍然挂在那里,所以我使用了 play() 函数...

以上是关于如何获取 swf 文件中的总帧数?的主要内容,如果未能解决你的问题,请参考以下文章

python tools:计算视频的 FPS,以及总帧数

使用 ffmpeg 获取帧数

将视频转换为单张图片(灰度)【MATLAB】

flash as3.0获取外部视频总的时间长度 和视频已播放的时间长度

2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息和总帧数。

如何在流式传输期间每 n 秒获取特定帧?