标签: videodisplay

Flex:动态创建视频的预览图像

我正在使用VideoDisplay播放flv,mov和mp4,一切都很好.它们都是通过渐进式下载加载的,并且没有流式传输.我想要做的是抓取一个指定的帧(就像在10秒标记处显示的那样),将其转换为位图并使用该位图作为视频的预览图像.我想在运行时这样做,所以我不必为每个要显示的视频创建预览图像.

有什么想法如何做到这一点?我宁愿不通过玩它来伪造它 - 寻找那个特定的框架,然后暂停它,但我可能别无选择?

apache-flex video actionscript-3 videodisplay

6
推荐指数
1
解决办法
7939
查看次数

将播放头搜索到Flash Video中的特定位置?

如果您在Flash中加载FLVPlayback组件或在Flex中加载VideoDisplay并尝试搜索特定位置或将playheadTime设置为特定位置,则电影总是向上或向下舍入非常大的数量

在Flash中,将FLVPlayback组件拖到舞台并将源设置为http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/examples/assets/phone.flv 然后尝试video.seek (6)或video.playheadTime = 6;

它只会转到10.同样,如果你使用他们的内置洗涤器,唯一的间隔是0,5或10.所以最多你看到的擦洗框架是3

以下是具有相同结果的flex示例.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:media="com.synapsegroup.media.*">

    <mx:Script>
        <![CDATA[
            import mx.events.MetadataEvent;
            import mx.events.SliderEvent;
            import mx.events.VideoEvent;

            protected function scrubber_changeHandler(event:SliderEvent):void
            {               
                trace(event.value);
                video.playheadTime = event.value;
            }

            protected function video_playheadUpdateHandler(event:mx.events.VideoEvent):void
            {               
                //scrubber.value = event.playheadTime;
                //http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/examples/assets/phone.flv
            }

        ]]>
    </mx:Script>

    <mx:Panel>
        <mx:VideoDisplay id="video" source="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/examples/assets/phone.flv" minWidth="200" minHeight="200"
                         autoPlay="false"
                         />
        <mx:ControlBar>
            <mx:Button label="Play" click="video.play();"/>
            <mx:Button label="Stop" click="video.pause();"/>
            <mx:HSlider liveDragging="true" id="scrubber" minimum="0" maximum="11.5" change="scrubber_changeHandler(event)" thumbPress="video.pause();"/>
        </mx:ControlBar>
    </mx:Panel>

</mx:Application>
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,如果您足够快地单击播放/暂停,您可以更精细地暂停各个帧,但这不是一个好的用户体验

有什么我缺少以编程方式执行此操作吗?

我还要说间隔根据视频长度而变化,3分钟长的间隔有10秒的间隔

apache-flex flash flvplayback actionscript-3 videodisplay

3
推荐指数
1
解决办法
3503
查看次数