flex videodisplay totalTime总是获取不到呢

问题描述

flex videodisplay totalTime总是获取不到呢

使用的flex as3.0 ,用videodisplay组件,totalTime总是获取不到呢,求大神指教

解决方案

<?xml version="1.0" encoding="utf-8"?>
layout="vertical"
creationComplete="playinit()" title="视频播放"
width="960"
height="600"
showCloseButton="true"
close="closeWindow()" doubleClickEnabled="true" doubleClick="display();">
mx:Script
<![CDATA[
import mx.events.StateChangeEvent;
import mx.collections.ArrayCollection;
import mx.events.SliderEvent;
import mx.events.VideoEvent;
import flash.display.Stage;
import mx.core.Application;
import mx.managers.PopUpManager;
import mx.core.Application;
import flash.events.FullScreenEvent;
import mx.controls.Alert;

        private var isplaying:Boolean = true;//默認為播放狀態
        public var playPosition:Number;//播放進度
        private var soundPosition:Number;//聲音大小

        [Bindable]
            public var rdpPlayAddr:String;
        private var video_totalTime:Number = 0;
    //播放地址
 //     public var url:String="";
 //     private var playUrl:String="http://www.xbqing.com/video/";
    private function closeWindow():void
    {
        try {
            flv_video.stop();
            flv_video.close();
        } catch(err:Error) {
            err.getStackTrace();
        }
        PopUpManager.removePopUp(this);
    }

    private var titleWindowWidth:Number=0;
    private var titleWindowHeight:Number=0;
    private var tolTime:Number = 0;

// private var cmeTimer:Timer = new Timer(100, 10);
internal function initTime(evt:Event):void
{
while(tolTime <= 0) {
tolTime = Math.round(flv_video.totalTime);
if (tolTime > 0) {
Alert.show("tolTime:" +tolTime);
flv_video.totalTime = tolTime;
break;
}
}

   }
    private function playinit():void
    {

// dispatchEvent(new Event("totalTimeUpdated"));
// dispatchEvent(new Event("metadataReceived"));
titleWindowWidth = this.width;
titleWindowHeight = this.height;

// flv_video.source = "rdppaly/Administrator_192.168.1.38_rdp_20110815150314.flv";
// setTotalTime();
// flv_video.addEventListener(VideoEvent.COMPLETE, initTime);
flv_video.source = rdpPlayAddr;
hs.enabled=true;
if (isNaN(flv_video.totalTime) || flv_video.totalTime <= 0 ) {
flv_video.play();
flv_video.totalTime = 600;
}
hs.maximum = flv_video.totalTime;
if (playPosition > 0) {
hs.value=playPosition;
flv_video.playheadTime = playPosition;
flv_video.play();
// Alert.show("dage:" +flv_video.playheadTime);
// isplaying = true;
play_btn.label="暂停";
stage.addEventListener(FullScreenEvent.FULL_SCREEN,fullScreenEvent);

        } else {

// flv_video.source = rdpPlayAddr;
// hs.enabled = true;
// hs.maximum = flv_video.totalTime;
stage.addEventListener(FullScreenEvent.FULL_SCREEN,fullScreenEvent);
}

        //监听全屏事件

    }
    //处理全屏事件,设置弹出窗和VideoDisplay大小
    private function fullScreenEvent(event:FullScreenEvent):void
    {
        try
        {
            if(this.stage.displayState == StageDisplayState.FULL_SCREEN)
            {//全屏
                this.x=0;
                this.y=0;
                this.width=Application.application.width;
                this.height=Application.application.height;
                flv_video.width=Application.application.width-50;
                flv_video.height=Application.application.height-110;
                fs.selected=true;

            }
            else
            {
                fs.selected=false;
                this.width=titleWindowWidth;
                this.height=titleWindowHeight;
                //VideoDisplay恢复大小
                flv_video.width=800;
                flv_video.height=600;
                PopUpManager.centerPopUp(this);
            }
        }
        catch(e:*)
        {

        }
    }
    //設罷播放源
    private function flvplay(event:Event):void
    {
    //  playUrl=playUrl+url;

// flv_video.source = "rdppaly/Administrator_192.168.1.38_rdp_20110815150314.flv";
flv_video.source = rdpPlayAddr;
hs.enabled=true;
if(isplaying)
{
if(flv_video.playing)
{
flv_video.pause();
}
play_btn.label="播放"
}
else
{
flv_video.play();
play_btn.label="暂停"
}
isplaying = !isplaying;
//监听播放進度
flv_video.addEventListener(VideoEvent.PLAYHEAD_UPDATE, progressHandler);

}
//显示播放進度

private function progressHandler(event:VideoEvent):void
{
hs.value = flv_video.playheadTime;
if(flv_video.playheadTime == flv_video.totalTime)
{
flv_video.pause();
play_btn.label="播放";
isplaying = false;
}
}

    private function mousePress(event:MouseEvent):void
    {
        if(flv_video.playing)
        {
            flv_video.pause();
        }
        mouseUp(event);
    }
    private function mouseUp(event:MouseEvent):void
    {
        flv_video.playheadTime = hs.value;
        if(isplaying)
        {
            flv_video.play();
        }
        else
        {
            if(flv_video.playing)
            {
                flv_video.pause();
            }

        }
    }
    //拖动进度条暂停播放
    private function thumbPress(event:SliderEvent):void
    {
        if(flv_video.playing)
        {
            flv_video.pause();
        }

    }
    //播放完成歸零
    private function thumbChanges(event:SliderEvent):void
    {
        if(flv_video.playheadTime == -1)
        {
            hs.value = 0;
            return;
        }
        playPosition = hs.value;//拖动目标位置开始播放

    }
    private function clickhshandler():void
    {
        if(flv_video.playheadTime == -1)
        {
            hs.value = 0;
            return;
        }

// flv_video.playheadTime = hs.mouseX;
flv_video.playheadTime = playPosition;//拖动目标位置开始播放

        if(isplaying)
        {
            flv_video.play();
        }
        else
        {
            if(flv_video.playing)
            {
                flv_video.pause();
            }

        }
    }
    //調整播放進度
    private function thumbRelease(event:SliderEvent):void
    {
        flv_video.playheadTime = playPosition;
        if(isplaying)
        {
            flv_video.play();
        }
        else
        {
            if(flv_video.playing)
            {
                flv_video.pause();
            }

        }
    }

    //调整声音
    private function sound_thumbChanges(event:SliderEvent):void
    {
        soundPosition = hs_sound.value;
    }
    private function sound_thumbRelease(event:SliderEvent):void
    {
        flv_video.volume = soundPosition;
    }
    //格式化時間
    private function formatTimes(value:int):String
    {
        if(value == -1)
        {
            value = 0;
        }
        var result:String = (value % 60).toString();
        if (result.length == 1)
        {
            result = Math.floor(value / 60).toString() + ":0" + result;
        }
        else
        {
            result = Math.floor(value / 60).toString() + ":" + result;
        }
        return result;
    }
    //切換全屏顯示
    private function display():void
    {

// if(fs.selected)//全屏
// {
// stage.displayState = StageDisplayState.FULL_SCREEN;
// }
// else
// {

// stage.displayState = StageDisplayState.NORMAL;
// }
if(stage.displayState == StageDisplayState.NORMAL)//全屏
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
else
{

stage.displayState = StageDisplayState.NORMAL;
}
}
//缓冲的时候播放loading
private function playLoading(flag:Boolean):void{
if(flag)
{//当缓冲时候
// swfLoading.visible=true;
// swfLoading.includeInLayout=true;
flv_video.visible=false;
flv_video.includeInLayout=false;
}
else
{
// swfLoading.visible=false;
// swfLoading.includeInLayout=false;
flv_video.visible=true;
flv_video.includeInLayout=true;
}
}

    private function stateChangeEvent(event:VideoEvent):void
    {
        if(event.state==VideoEvent.BUFFERING||event.state==VideoEvent.LOADING)
        {//缓冲和加载
            playLoading(true);
        }
        else
        {
            playLoading(false);
        }
    }
    public function metadataReceivedHandler(event:Event):void {
        if (isNaN(flv_video.totalTime) || flv_video.totalTime == 0) {
             var total_time:Number = flv_video != null ? flv_video.totalTime : NaN;
             hs.maximum = total_time;

        }
        if (playPosition > -1) {
            flv_video.playheadTime = playPosition;
            flv_video.play();
            //监听播放進度
            flv_video.addEventListener(VideoEvent.PLAYHEAD_UPDATE, progressHandler);
        }
    }

// var timeID:int = setInterval(setTotalTime, 300);
// function setTotalTime():void{
// if(!flv_video.totalTime){
// playtime.text = formatTimes(flv_video.playheadTime) +" : 总时间0";
// }else{
// clearInterval(timeID);
// playtime.text = formatTimes(flv_video.playheadTime) +" : 总时间" +formatTimes(flv_video.totalTime);
// }
//

// }

// public function getTotalTime(evt:Event):void {
// if (video_totalTime == 0 && !isNaN(flv_video.totalTime) && flv_video.totalTime > 0 ) {
// video_totalTime = flv_video.totalTime;
// playtime.text = formatTimes(flv_video.playheadTime)+" : 总时间" +formatTimes(flv_video.totalTime);
// trace("playtime text: " + playtime.text);
// }
// }
]]>
/mx:Script

<mx:VBox width="100%" height="100%" horizontalAlign="center" verticalGap="0" verticalAlign="top" >

    <mx:VideoDisplay  id="flv_video"  width="800" height="600"
        autoPlay="true" autoRewind="true" bufferTime="100"
        maintainAspectRatio="true" metadataReceived="metadataReceivedHandler(event)"
        stateChange="stateChangeEvent(event)" />
    <mx:HSlider id="hs" fillColors="#000099, #0000ff, #ffffff, #eeeeee"
        showTrackHighlight="true" minimum="0" maximum="{flv_video.totalTime}"
        thumbPress="thumbPress(event)" thumbRelease="thumbRelease(event)"
        change="thumbChanges(event)" width="90%"  /><!--  mouseDown="mousePress(event)" mouseUp="mouseUp(event)"  click="clickhshandler()" -->
    <mx:ApplicationControlBar width="100%" height="38" horizontalAlign="center" >
        <mx:ApplicationControlBar width="123" cornerRadius="15">
            <mx:Button id="play_btn" click="flvplay(event)" label="播放" cornerRadius="13"/>
            <mx:Button id="stop_btn" label="停止" cornerRadius="13" click="flv_video.stop();play_btn.label='播放';hs.enabled=false;" />
        </mx:ApplicationControlBar>
        <mx:ApplicationControlBar width="132" cornerRadius="15" horizontalAlign="center">
            <mx:Label id="playtime" text="{formatTimes(flv_video.playheadTime)} : 总时间{formatTimes(flv_video.totalTime)}"
                width="100%" fontSize="12" textAlign="center"/>
        </mx:ApplicationControlBar>
        <mx:ApplicationControlBar cornerRadius="15" width="130">
            <mx:Label id="sound" text="声音" width="32" fontWeight="bold" fontSize="12" textAlign="center"/>
            <mx:HSlider id="hs_sound" width="86" minimum="0" maximum="1" thumbRelease="sound_thumbRelease(event)"
                change="sound_thumbChanges(event)" value="{flv_video.volume}"  fillAlphas="[0.6, 1.0, 1.0, 1.0]"/>
        </mx:ApplicationControlBar>
        <mx:ApplicationControlBar>
            <mx:CheckBox label="全屏" id="fs" change="display();" selected="false"/>
        </mx:ApplicationControlBar>
    </mx:ApplicationControlBar>
</mx:VBox>

/mx:TitleWindow

解决方案二:

请问主把问题详细描述一下,比如代码,截图等等,谢谢

解决方案三:

<mx:VideoDisplay  id="flv_video"  width="800" height="600"
    autoPlay="true" autoRewind="true" bufferTime="100"
    maintainAspectRatio="true" metadataReceived="metadataReceivedHandler(event)"
    stateChange="stateChangeEvent(event)" />
<mx:HSlider id="hs" fillColors="#000099, #0000ff, #ffffff, #eeeeee"
    showTrackHighlight="true" minimum="0" maximum="{flv_video.totalTime}"
    thumbPress="thumbPress(event)" thumbRelease="thumbRelease(event)"
    change="thumbChanges(event)" width="90%"  /><!--  mouseDown="mousePress(event)" mouseUp="mouseUp(event)"  click="clickhshandler()" -->
<mx:ApplicationControlBar width="100%" height="38" horizontalAlign="center" >
    <mx:ApplicationControlBar width="123" cornerRadius="15">
        <mx:Button id="play_btn" click="flvplay(event)" label="播放" cornerRadius="13"/>
        <mx:Button id="stop_btn" label="停止" cornerRadius="13" click="flv_video.stop();play_btn.label='播放';hs.enabled=false;" />
    </mx:ApplicationControlBar>
    <mx:ApplicationControlBar width="132" cornerRadius="15" horizontalAlign="center">
        <mx:Label id="playtime" text="{formatTimes(flv_video.playheadTime)} : 总时间{formatTimes(flv_video.totalTime)}"
            width="100%" fontSize="12" textAlign="center"/>
    </mx:ApplicationControlBar>
    <mx:ApplicationControlBar cornerRadius="15" width="130">
        <mx:Label id="sound" text="声音" width="32" fontWeight="bold" fontSize="12" textAlign="center"/>
        <mx:HSlider id="hs_sound" width="86" minimum="0" maximum="1" thumbRelease="sound_thumbRelease(event)"
            change="sound_thumbChanges(event)" value="{flv_video.volume}"  fillAlphas="[0.6, 1.0, 1.0, 1.0]"/>
    </mx:ApplicationControlBar>
    <mx:ApplicationControlBar>
        <mx:CheckBox label="全屏" id="fs" change="display();" selected="false"/>
    </mx:ApplicationControlBar>
</mx:ApplicationControlBar>

/mx:VBox

解决方案四:

不带表名 select 1+1 就行

时间: 2024-09-16 08:02:49

flex videodisplay totalTime总是获取不到呢的相关文章

flex中怎么能获取到Tree的所有子节点

问题描述 flex中怎么能获取到Tree的所有子节点 flex中怎么能获取到Tree的所有最底层的子节点,还有就是点击过的节点状态变成不可再点击,只有取消选中状态,才能再次选中

flex通过java后台获取ip和pcname示例代码_Flex

在***DAOImpl.java中的代码如下 复制代码 代码如下: public String getCompuName() { Map<String, String> map = System.getenv() ; String computerName = map.get("COMPUTERNAME");// 获取计算机名 return computerName; } public String getIp() { InetAddress addr = null; tr

flex能不能调用windows api

问题描述 最近做一个电子秤的WEB项目,需求是用flex在HTML页面中调用电子秤传来的数据,电子秤连接电脑并且安装了驱动,一个C/S版本实现了C++调用windowapi得到电子秤传来的数据现在想用在网页上实现这个功能.请教flex能调用windowsapi获取电子秤的数据吗?或者其他可以在WEB页面得到电子秤数据的实现方式用JAVA的JNI的方式就不用说了. 解决方案 解决方案二:可以调用..解决方案三:直接ActionScript里调用??应该是可以的.如果Java的话还是JNA吧,JNI

自己实现一个SQL解析引擎

自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可执行的操作序列,并返回查询的结果集. SQL的解析引擎包括查询编译与查询优化和查询的运行,主要包括3个步骤: 查询分析: 制定逻辑查询计划(优化相关) 制定物理查询计划(优化相关) 查询分析: 将SQL语句表示成某种有用的语法树. 制定逻辑查询计划: 把语法树转换成一个关系代数表达式或者类似的结构,这个结构通常称作逻辑计划. 制定物理查询计划:把逻辑计划转换成物理查询计划,要求指定操作执行的顺序,每一步使用的算法,操作之间的

JavaScript与ActionScript3两者的同性与差异性_javascript技巧

javascript和actionscript是基于什么标准的,大家知道吗? ActionScript 和 JavaScript 共享一个常用标准:ECMAScript.因此,如果您曾经用 JavaScript 编写过一个条件("if 语句")或迭代("循环语句"),则您可以使用 ActionScript.记住 JavaScript 和 ActionScript 一样是区分大小写的. 先来看看二者的同性与差异性: 共同点: a).二者语法相似,都遵循ECMAScri

flex通过js获取ip和pcname示例代码

在js中获取ip和pcname的方法,现在将它放在flex启动模板中即可,具体实现如下,感兴趣的朋友可以参考下,希望对大家有所帮助   这个是在js中获取ip和pcname的方法,现在将它放在flex启动模板中即可.看代码: 复制代码 代码如下: function getClientPcName() { //"请将您浏览器Internet选项中的"对没有标记为安全的ActiveX控件进行初始化和脚本运行"设置为"启用"!nn然后刷新本页登陆!"

flex 列名-flex如何获取实体的所有列名

问题描述 flex如何获取实体的所有列名 flex如何获取实体的所有列名 . 解决方案 问题已找到解决方法 还是谢谢你 解决方案二: flex,传说中的富客户端吗,没用过

Flex通过JS获取客户端IP和计算机名的实例代码_javascript技巧

首先说明一下,用JS方式获取不是调用webservices和httpservices.     在我们每一个FLex web工程中,都有那么一个文件夹bin-debug,里面有个index.html文件,我的个人理解是这样的,首先网页运行的时候,mxml的文件会被编译为swf,那么swf如何在浏览器中展现,就是通过这个html文件,相当于在html文件中嵌入了一个swf的object组件. www.jb51.net     所以,在这个html中写入js的代码,来获取ip地址我个人觉得是可行的.

flex能获取CPU信息和MAC地址吗?

问题描述 flex能获取CPU信息和MAC地址吗? 问题补充:我的意思是获取别人的MAC地址,作为唯一标识,java好像只能获取本地的吧. 解决方案 java 可以获取CPU MAC 用flex调用java代码java 有一个 sigar-1.6.3.jar 这个可以获取硬件信息.参考文档:http://www.cnblogs.com/mypm/archive/2011/03/27/1996621.html