Flash Flex 4 spark视频播放器如何从当前时间播放
共有4个视频源,用户可以在其中切换,视频进度相同 我如何实现这一点? 函数Flash Flex 4 spark视频播放器如何从当前时间播放,flash,apache-flex,adobe,flexbuilder,flex-spark,Flash,Apache Flex,Adobe,Flexbuilder,Flex Spark,共有4个视频源,用户可以在其中切换,视频进度相同 我如何实现这一点? 函数seek(时间:持续时间):void实际上不起作用:-( 我使用的代码: <?xml version="1.0" encoding="utf-8"?> 以下是我的解决方案: 在您的设计中有四个文件可以切换。每个切换在一个新的源文件中跳转到时间 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http:/
seek(时间:持续时间):void
实际上不起作用:-(
我使用的代码:
<?xml version="1.0" encoding="utf-8"?>
以下是我的解决方案:
在您的设计中有四个文件可以切换。每个切换在一个新的源文件中跳转到时间
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="createHandler();">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import flash.events.TimerEvent; //very important
import flash.utils.Timer; //very important
import flashx.textLayout.events.UpdateCompleteEvent;
import mx.events.VideoEvent;
import org.osmf.events.MediaElementEvent;
import org.osmf.events.MediaPlayerStateChangeEvent;
import org.osmf.media.MediaPlayer;
import org.osmf.media.MediaPlayerState;
private var time:Number=0;
private var changed:Boolean = false;
protected function normal_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time
vid.source="1.flv"
}
protected function ini():void{
if(vid.currentTime>0){
time = Math.round(vid.currentTime);
changed = true;
timer.reset();
timer.start();
}
}
protected function nurhoer_clickHandler(event:MouseEvent):void
{
ini();
vid.source="2.flv"
Text.text = "current Tume: "+time;
}
protected function schwerh_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time;
vid.source="3.flv"
}
protected function schwerhmH_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time;
vid.source="4.flv"
}
protected var timer:flash.utils.Timer = new Timer(200,2);
private function createHandler():void
{
try{
timer.addEventListener(flash.events.TimerEvent.TIMER, repeat);
timer.addEventListener(flash.events.TimerEvent.TIMER_COMPLETE, repeat);
//console.text = "Events are loaded2!";
}catch(exep){}
}
source="{source}" />
private function repeat(event:flash.events.TimerEvent):void{
if(!vid.playing){
try{
if(changed && Math.round(vid.currentTime)!= Math.round(time)){
// console.text = console.text +"\n"+"try to seek to: "+time;
vid.seek(time);
changed=false;
}else {
timer.reset();
timer.stop();
vid.play();
}
}catch (ex){}
}
}
]]>
</fx:Script>
0){
时间=数学循环(参见当前时间);
更改=正确;
timer.reset();
timer.start();
}
}
受保护的函数nurhoer\u clickHandler(事件:MouseeEvent):无效
{
ini();
vid.source=“2.flv”
Text.Text=“当前Tume:+时间;
}
受保护函数schwerh_clickHandler(事件:MouseeEvent):无效
{
ini();
Text.Text=“当前Tume:+时间;
vid.source=“3.flv”
}
受保护函数schwerhmH_clickHandler(事件:MouseeEvent):无效
{
ini();
Text.Text=“当前Tume:+时间;
vid.source=“4.flv”
}
受保护的var定时器:flash.utils.timer=新定时器(200,2);
私有函数createHandler():void
{
试一试{
timer.addEventListener(flash.events.TimerEvent.timer,repeat);
timer.addEventListener(flash.events.TimerEvent.timer_完成,重复);
//console.text=“事件已加载2!”;
}捕获(exep){}
}
source=“{source}”/>
私有函数重复(事件:flash.events.TimerEvent):无效{
如果(!vid.playing){
试一试{
if(已更改和数学圆整(vid.currentTime)!=Math.round(time)){
//console.text=console.text+“\n”+”尝试寻找:“+时间;
视频搜索(时间);
更改=错误;
}否则{
timer.reset();
timer.stop();
视频播放();
}
}捕获(ex){}
}
}
]]>
谢谢你的克制。你是如何推理VideoPlr.duration*time/100
来获得搜索时间的?这是我找到的一个例子,但它不起作用。如果你有其他的广告请。张贴它。谢谢
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="createHandler();">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import flash.events.TimerEvent; //very important
import flash.utils.Timer; //very important
import flashx.textLayout.events.UpdateCompleteEvent;
import mx.events.VideoEvent;
import org.osmf.events.MediaElementEvent;
import org.osmf.events.MediaPlayerStateChangeEvent;
import org.osmf.media.MediaPlayer;
import org.osmf.media.MediaPlayerState;
private var time:Number=0;
private var changed:Boolean = false;
protected function normal_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time
vid.source="1.flv"
}
protected function ini():void{
if(vid.currentTime>0){
time = Math.round(vid.currentTime);
changed = true;
timer.reset();
timer.start();
}
}
protected function nurhoer_clickHandler(event:MouseEvent):void
{
ini();
vid.source="2.flv"
Text.text = "current Tume: "+time;
}
protected function schwerh_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time;
vid.source="3.flv"
}
protected function schwerhmH_clickHandler(event:MouseEvent):void
{
ini();
Text.text = "current Tume: "+time;
vid.source="4.flv"
}
protected var timer:flash.utils.Timer = new Timer(200,2);
private function createHandler():void
{
try{
timer.addEventListener(flash.events.TimerEvent.TIMER, repeat);
timer.addEventListener(flash.events.TimerEvent.TIMER_COMPLETE, repeat);
//console.text = "Events are loaded2!";
}catch(exep){}
}
source="{source}" />
private function repeat(event:flash.events.TimerEvent):void{
if(!vid.playing){
try{
if(changed && Math.round(vid.currentTime)!= Math.round(time)){
// console.text = console.text +"\n"+"try to seek to: "+time;
vid.seek(time);
changed=false;
}else {
timer.reset();
timer.stop();
vid.play();
}
}catch (ex){}
}
}
]]>
</fx:Script>