egret.Video
包 egret
类 public class Video
继承 egret.Video → egret.DisplayObject → egret.EventDispatcher → egret.HashObject
Video 允许您在应用程序中使用视频。使用 Video 类可以创建 Video 对象、将外部视频文件加载到该对象并播放该文件。
注意: 在大多数移动设备中,视频是强制全屏播放的,所以你可以直接调用 play() 方法全屏播放视频,不用将它绘制在Stage中。
公共属性
属性 |
---|
bitmapData : egret.BitmapData 获取视频的 bitmapData, 你可以将视频绘制到舞台上 |
fullscreen : boolean 是否全屏播放这个视频(默认值是 true) |
length : number 当前视频的长度(以秒为单位) |
paused : boolean 当前视频是否在暂停状态 |
position : number 当播放视频时,position 属性表示视频文件中当前播放的位置(以秒为单位) |
poster : string 视频加载前,或者在不支持将 video 画在 canvas 的设备上,想要显示的视频截图地址 |
src : string 想要播放的视频的URL |
volume : number 音量范围从 0(静音)至 1(最大音量) |
公共方法
方法 |
---|
Video(url:string,cache:boolean) |
close():void 关闭该流,从而停止所有数据的下载 |
load(url:string,cache:boolean):void 启动从指定 URL 加载外部视频文件的过程 |
pause():void 暂停播放 |
play(startTime:number,loop:boolean) 播放该视频 |
事件
Events |
---|
egret.Event.COMPLETE 视频加载完成时抛出 |
egret.Event.ENDED 视频播放完成时抛出 |
egret.IOErrorEvent.IO_ERROR 视频加载失败时触发 |
egret.Event.ADDED 将显示对象添加到显示列表中时调度。 |
egret.Event.ADDED_TO_STAGE 在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 |
egret.Event.REMOVED 将要从显示列表中删除显示对象时调度。 |
egret.Event.REMOVED_FROM_STAGE 在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 |
egret.Event.ENTER_FRAME [广播事件] 播放头进入新帧时调度。 |
egret.Event.RENDER [广播事件] 将要更新和呈现显示列表时调度。 |
egret.TouchEvent.TOUCH_MOVE 当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。 |
egret.TouchEvent.TOUCH_BEGIN 当用户第一次触摸启用触摸的设备时(例如,用手指触摸手机屏幕)调度。 |
egret.TouchEvent.TOUCH_END 当用户移除与启用触摸的设备的接触时(例如,将手指从屏幕上抬起)调度。 |
egret.TouchEvent.TOUCH_TAP 当用户在启用触摸设备上的已启动接触的同一 DisplayObject 实例上抬起接触点时(例如,手机点击屏幕后抬起)调度。 |
egret.TouchEvent.TOUCH_RELEASE_OUTSIDE 当用户在启用触摸设备上的已启动接触的不同 DisplayObject 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。 |
属性详细信息
bitmapData
bitmapData : egret.BitmapData
- 支持版本:Egret 2.4
- 运行平台:Web
获取视频的 bitmapData, 你可以将视频绘制到舞台上。注意: 在大多数移动设备中,视频是全屏播放的,所以你可以直接调用 play() 方法全屏播放视频,不用将它绘制在Stage中。
fullscreen
fullscreen : boolean
- 支持版本:Egret 2.4
- 运行平台:Web,Native
是否全屏播放这个视频(默认值是 true)。目前移动端 web 只支持全屏。
length
length : number
- 支持版本:Egret 3.0.8
- 运行平台:Web,Native
当前视频的长度(以秒为单位)。
paused
paused : boolean
- 支持版本:Egret 2.4
- 运行平台:Web,Native
当前视频是否在暂停状态。
position
position : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
当播放视频时,position 属性表示视频文件中当前播放的位置(以秒为单位)
poster
poster : string
- 支持版本:Egret 2.4
- 运行平台:Web,Native
视频加载前,或者在不支持将 video 画在 canvas 的设备上,想要显示的视频截图地址。
src
src : string
- 支持版本:Egret 2.4
- 运行平台:Web,Native
想要播放的视频的URL
volume
volume : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
音量范围从 0(静音)至 1(最大音量)。
方法详细信息
Video()
public Video(url:string,cache:boolean)
close()
public close():void
关闭该流,从而停止所有数据的下载。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
load()
public load(url:string,cache:boolean):void
启动从指定 URL 加载外部视频文件的过程。
pause()
public pause():void
暂停播放。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
play()
public play(startTime:number,loop:boolean)
播放该视频
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
示例
/*
* 以下示例加载一个视频文件,进行播放,并以两种方式演示视频的控制。
*/
class VideoExample extends egret.DisplayObjectContainer {
constructor() {
super();
[0, 1].forEach(i => {
const video = new egret.Video();
video.x = 50;
video.y = i * 280 + 20;
video.width = 427;
video.height = 240;
video.fullscreen = i == 0;
egret.log(video.fullscreen, i == 0);
video.poster = video.fullscreen ? "resource/posterfullscreen.jpg" : "resource/posterinline.jpg";
video.touchEnabled = true;
video.once(egret.TouchEvent.TOUCH_TAP, this.playVideo, this);
video.load("resource/video/trailer.mp4");
this.addChild(video);
const text = new egret.TextField();
text.text = "Loading";
text.x = 50;
text.y = (i + 1) * 280 - 20;
video.addEventListener(egret.Event.COMPLETE, e => text.text = "Loaded, click video to play", this);
this.addChild(text);
});
}
private playVideo(e: egret.TouchEvent) {
egret.log(this);
const video = <egret.Video>e.target;
video.play();
video.once(egret.TouchEvent.TOUCH_TAP, this.stopVideo, this);
video.once(egret.Event.ENDED, this.stopVideo, this);
}
private stopVideo(e: egret.TouchEvent) {
const video = <egret.Video>e.target;
video.removeEventListener(egret.Event.ENDED, this.stopVideo, this);
video.removeEventListener(egret.TouchEvent.TOUCH_TAP, this.stopVideo, this);
video.pause();
video.once(egret.TouchEvent.TOUCH_TAP, this.playVideo, this);
}
}