Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Flash视频组件获取总时间和播放时间?_Flash_Video_Streaming_Timestamp - Fatal编程技术网

从Flash视频组件获取总时间和播放时间?

从Flash视频组件获取总时间和播放时间?,flash,video,streaming,timestamp,Flash,Video,Streaming,Timestamp,我已经将一个视频加载到FLVPlayback组件中,我正在寻找一种方法来获取到目前为止播放的总时间和时间,并将它们输出到两个文本字段,以便最终结果看起来像“00:12/00:50” 现在,我正在由components inspector定义视频,但我最终希望通过actionscript来定义这一点。任何提示都将不胜感激。您可以在这里找到时间: 在这里: 还有一个定期触发的事件,因此您可以轻松更新时间: 编辑:更新链接我知道这是一个老问题-但我已经寻找了一段时间,还没有找到答案 如果您使用的

我已经将一个视频加载到FLVPlayback组件中,我正在寻找一种方法来获取到目前为止播放的总时间和时间,并将它们输出到两个文本字段,以便最终结果看起来像“00:12/00:50”


现在,我正在由components inspector定义视频,但我最终希望通过actionscript来定义这一点。任何提示都将不胜感激。

您可以在这里找到时间:

在这里:

还有一个定期触发的事件,因此您可以轻松更新时间:


编辑:更新链接

我知道这是一个老问题-但我已经寻找了一段时间,还没有找到答案

如果您使用的是FLVPlayback组件,那么仍然可以使用MetadataEvent来获取嵌入在FLV/F4V文件中的元数据。 我通过AS3创建了一个FLVPlayback实例,侦听了MedataEvent.METADATA\u接收到的事件,然后访问了该事件返回的info属性。在代码中,它看起来像这样:


package
{
import fl.video.FLVPlayback; // you will need to drag the component to the stage, then delete it.  This puts some stuff in the library and now you can access the class
import fl.video.MetadataEvent;
import flash.display.MovieClip;

public class flvTest extends MovieClip
{
private var inputURL:String = "./test.flv"; // change this to the location of your FLV/F4V
private var player:FLVPlayback;

public function flvTest():void
{
player = new FLVPlayback();
// set x,y,width,height values if you want
player.autoRewind = true; // I use this so when you press stop, it goes to the first frame
player.load( inputURL ); // you can use load() or source=
player.addEventListener( MetadataEvent.METADATA_RECEIVED, getMetaFromFLV );

addChild( player );
}

private var getMetaFromFLV( metadataEvent:MetadataEvent = null ):void
{
trace( "FLV Duration: " + metadataEvent.info.duration );
}

}
}
显然,您需要一些播放器控件等,但是这个回答的关键是MetadataEvent部分。 事件返回的info属性包含嵌入在FLV/F4V视频文件中的所有元数据,因此可以获得许多其他值

(许多其他搜索和帖子仅解释如何从NetStream和类似网站获取元数据,连接到闪存媒体服务器时使用这些元数据——而在这里,我们访问的是本地文件,只需要文件中嵌入的数据)

我希望这对别人有帮助

要获取时间:

flvPlayer.playheadTime;// gives you the current videp position flvPlayer.playheadTime;//为您提供当前videp位置 至于格式:

public static function formatTime(time:Number, detailLevel:uint = 2):String { var intTime:uint = Math.floor(time); var hours:uint = Math.floor(intTime/ 3600); var minutes:uint = (intTime - (hours*3600))/60; var seconds:uint = intTime - (hours*3600) - (minutes * 60); var hourString:String = detailLevel == HOURS ? hours + ":":""; var minuteString:String = detailLevel >= MINUTES ? ((detailLevel == HOURS && minutes = MINUTES)) ? "0":"") + seconds; return hourString + minuteString + secondString; } 公共静态函数formatTime(时间:Number,细节级别:uint=2):字符串{ var intTime:uint=数学楼层(时间); 变量小时数:uint=数学楼层(intTime/3600); 变量分钟数:uint=(intTime-(hours*3600))/60; 变量秒数:uint=intTime-(小时*3600)-(分钟*60); var hourString:String=detailLevel==HOURS?HOURS+“:”; var minuteString:String=detailLevel>=MINUTES?((detailLevel==HOURS&&MINUTES=MINUTES))?“0”:“)+seconds; 返回hourString+minuteString+secondString; }
链接不起作用。用实际代码示例将答案标记为正确答案不是更好吗?它们显然持续时间更长!