[ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方
一个视频要循环播放,通常的办法都是播放完后再重新播放,但是不可避免的播放结束和重新开始播放这个时间点上会有停顿,如何解决这个问题,说个偏方吧!
package com.views
{
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.utils.setTimeout; /**
* @author Frost.Yen
* @email 871979853@qq.com
* @build 2016-8-9 上午10:53:13
*/
public class VideoView extends Sprite
{
private var _video1:VideoDisplay;
private var _video2:VideoDisplay;
private var _currVideo:VideoDisplay;
private var _duration:Number;
private var _b:Boolean;
public function VideoView(url:String)
{
_video1 = new VideoDisplay(url,true);
_video2 = new VideoDisplay(url);
_video1.onMetaData = onMetaData;
_video2.visible = false;
_currVideo = _video1;
this.addChild(_video1);
this.addChild(_video2);
this.addEventListener(Event.ENTER_FRAME,onCheck);
}
private function onMetaData():void
{
_duration = _video1.duration;
}
private function onCheck(e:Event):void
{
//trace("vs.time= " + _currVideo.time+ " duration= " + _duration );
if (_currVideo.time > 0 && _duration > 0)
{ if (_duration-_currVideo.time <=0.1 )
{ this.removeEventListener(Event.ENTER_FRAME,onCheck);
setTimeout(add,2000);
if(_video1.visible){
_video1.visible = false;
_video2.visible = true;
_video1.seek(0);
_video1.pause();
_video2.play();
_currVideo = _video2;
}else{
_video2.visible = false;
_video1.visible = true;
_video2.seek(0);
_video2.pause();
_video1.play();
_currVideo = _video1;
} //_ns.seek(0);//跳转到0秒处播放。
}
}
}
private function add():void
{
this.addEventListener(Event.ENTER_FRAME,onCheck);
}
}
}
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream; class VideoDisplay extends Sprite
{
private var _video:Video;
private var _ns:NetStream;
private var _duration:Number;
public var onMetaData:Function;
public function VideoDisplay(url:String,auto:Boolean=false)
{
var nc:NetConnection = new NetConnection();
nc.connect(null);
_ns = new NetStream(nc);
var client:Object = new Object( );
client.onMetaData = function(data:Object):void {
//trace(data.duration);
_duration = data.duration;
if(onMetaData!=null){
onMetaData();
} };
_ns.client = client;
_video = new Video(1920,1080);
_video.attachNetStream(_ns);
_ns.play(url);
if(!auto){
_ns.seek(0);
_ns.pause();
}
this.addChild(_video);
}
public function play():void
{
_ns.resume();
}
public function pause():void
{
_ns.pause();
}
public function seek(offset:Number):void
{
_ns.seek(offset);
}
public function get duration():Number
{
return _duration;
}
public function get time():Number
{
return _ns.time;
}
}
[ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方的更多相关文章
- [ActionScript 3.0] AS3.0和AS2.0的相互通信
AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...
- [ActionScript 3.0] AS3.0 下雨及涟漪效果
帧代码: stage.frameRate = 80; function init(x1:Number,y1:Number) { var mc:MovieClip=new MovieClip(); ad ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- [ActionScript 3.0] AS3.0 本机鼠标指针
Flash Player 10.2添加了内置的本机鼠标指针(native mouse cursor)支持,虽然在之前的版本里我们可以侦听MouseEvent事件来模拟鼠标指针,但是在有了原生的本机鼠标 ...
- [ActionScript 3.0] AS3.0 涂鸦及擦除功能,撤销重做步骤记录实例
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...
- [ActionScript 3.0] AS3.0 简单封装Socket的通信
Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...
- [ActionScript 3.0] AS3.0 Socket通信实例
以下类是充当Socket服务器的例子 package { import flash.display.Sprite; import flash.events.Event; import flash.ev ...
- [ActionScript 3.0] AS3.0 对象在矩形范围随机运动
package com.views { import flash.display.Bitmap; import flash.display.MovieClip; import flash.displa ...
- [ActionScript 3.0] AS3.0 将图像的Alpha通道转换为黑白图像(分离ARGB方式)
import flash.display.BitmapData; import flash.display.Bitmap; /** * 将图像的Alpha通道转换为黑白图像(分离ARGB方式) */ ...
随机推荐
- OC面向对象—多态
OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...
- iOS开发网络篇—NSURLConnection基本使用
iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...
- My Game --简介
曾经 我们雄心壮志,曾经 我们慷慨激昂,曾经 我们豪情满天涯. 曾经我们一起策划玩法,寻找背景题材,编写代码,幻想没有的更新.此刻由最后的孤狼把仅有成果分享给大伙. 所谓的玩法,背景,每个游戏都与众不 ...
- mysql 中execute、executeQuery和executeUpdate之间的区别
在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值 ...
- ubuntu fix the grub boot(need Internet)
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot- ...
- C# 6.0新特性(转载)
简介 VS 2015中已经包含C# 6.0. C#在发布不同版本时,C#总是会有新特性,比如C#3.0中出现LINQ,C#4.0中的动态特性,c#5.0中的异步操作等.. C# 6.0中与增加了不少新 ...
- mysql主从复制配置(精简版)
一.首先准备两台服务器,虚拟机即可,以笔者为例:master:192.168.1.105 slave:192.168.1.106 二.保证两台虚拟机能相互ping通,先把防火墙关闭:service i ...
- 搭建Tomcat6源代码阅读环境
目标:使用MyEclipse8.5阅读Tomcat6源码. 第一步:在MyEclipse8.5中集成SVN插件. 第二步:从地址http://svn.apache.org/repos/asf/tomc ...
- javaweb--上传文件使用灵活的自定义添加
//upload2.jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...
- ecshop 常见问题汇总
下面68ECSHOP开发中心就和大家说说ecshop使用中常见的问题 1.如何修改网站"欢迎光临本店" 回答(1) languages\zh_cn\common.php ...