VideoPlayer Class

Header: #include "easyar/player.hpp"

Inherits: RefBase

Description

VideoPlayer是视频播放类。

EasyAR支持普通的视频、透明视频和流媒体播放。视频内容会被渲染到传入setRenderTexture的texture上。

Public Types

enum Status{kVideoError, kVideoReady, kVideoCompleted}
enum VideoType{kVideoTypeNormal, kVideoTypeTransparentSideBySide, kVideoTypeTransparentTopAndBottom}

Public Functions

VideoPlayer()
virtual ~VideoPlayer()
void setRenderTexture(int texture)
void setVideoType(VideoType videoType)
void open(const char* path, StorageType storageType, VideoPlayerCallBack* callback = 0)
void close()
bool play()
bool stop()
bool pause()
void updateFrame()
int duration()
int currentPosition()
bool seek(int position)
Vec2I size()
float volume()
bool setVolume(float volume)

enum VideoPlayer::Status

Constant

Value

Description

kVideoError

-1

视频打开或播放过程中发生错误。

kVideoReady

0

视频成功打开,可以开始播放。

kVideoCompleted

1

视频播放完成。

enum VideoPlayer::VideoType

Constant

Value

Description

kVideoTypeNormal

0

普通视频。

kVideoTypeTransparentSideBySide

1

透明视频,左半边是RGB通道,右半边是alpha通道。

kVideoTypeTransparentTopAndBottom

2

透明视频,上半边是RGB通道,下半边是alpha通道。

VideoPlayer()

创建VideoPlayer实例。

virtual ~VideoPlayer()

销毁VideoPlayer实例。

void setRenderTexture(int texture)

传入用来显示视频的texture到播放器。这个方法需要在open之前调用。

void setVideoType(VideoType videoType)

设置视频类型。如果没有手动设置,将默认为普通类型。这个方法需要在open之前调用。

void open(const char* path, StorageType storageType, VideoPlayerCallBack* callback = 0)

从 path 打开视频。

path 可以是本地视频文件(path/to/video.mp4)或url(http://www.../.../video.mp4)。 storageType 表示path的类型。关于StorageType的详细描述参见 StorageType

这个方法是异步的方法。Open可能会花一些时间才能完成。如果你希望知道视频打开的结果或播放中的状态,需要提供一个非null的 callback 。callback会在其它线程被调用。你可以在回调中检查打开是否成功结束并在成功打开之后开始播放。

void close()

关闭视频。

bool play()

开始或继续播放视频。

bool stop()

停止视频播放。

bool pause()

暂停视频播放。

void updateFrame()

更新texture数据。这个方法需要在渲染线程调用。

int duration()

返回视频长度。在成功的open之后使用。

int currentPosition()

返回当前播放到的视频位置。在成功的open之后使用。

bool seek(int position)

将播放位置调整到 position 。在成功的open之后使用。

Vec2I size()

返回视频长宽。在成功的open之后使用。

float volume()

返回视频音量。在成功的open之后使用。

bool setVolume(float volume)

设置视频音量。在成功的open之后使用。