如果您在 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>
在这两种情况下,如果您足够快地单击播放/暂停,您可以在单个帧上以更大的粒度暂停,但这不是一个好的用户体验
以编程方式执行此操作我缺少什么吗?
我还要说间隔会根据视频长度而变化,3分钟长的东西有10秒的间隔