WEB开发网
开发学院手机开发Android 开发 Android 下的PVPlayer的实现 阅读

Android 下的PVPlayer的实现

 2010-09-10 01:08:00 来源:WEB开发网   
核心提示:cancelled);static void run_prepare(status_t s, void *cookie, bool cancelled);和几个私有成员;PlayerDriver* mPlayerDriver; //整个pv的播放引擎char * mDataSourcePath;//数据源bool mI
cancelled);

static void run_prepare(status_t s, void *cookie, bool cancelled);

和几个私有成员;

PlayerDriver* mPlayerDriver; //整个pv的播放引擎

char * mDataSourcePath;//数据源

bool mIsDataSourceSet;//一个数据源的标识符

sp mSurface;//显示面

int mSharedFd; //这个估计是文件句柄

status_t mInit; //一个状态标志

int mDuration; //文件播放长度

我们来看实现:

// ----------------------------------------------------------------------------

// implement the Packet Video player

// ----------------------------------------------------------------------------

PVPlayer::PVPlayer()

{

LOGV("PVPlayer constructor");

mDataSourcePath = NULL;

mSharedFd = -1;

mIsDataSourceSet = false;

mDuration = -1;

mPlayerDriver = NULL;

LOGV("construct PlayerDriver");

mPlayerDriver = new PlayerDriver(this);

LOGV("send PLAYER_SETUP");

mInit = mPlayerDriver->enqueueCommand(new PlayerSetup(0,0));//给他一个初始化的命令放在队列里面

}

status_t PVPlayer::initCheck()

{

return mInit;

}没有什么工作,初始化工作其实也可以放在这里的。

PVPlayer::~PVPlayer()

{

LOGV("PVPlayer destructor");

if (mPlayerDriver != NULL) {

PlayerQuit quit = PlayerQuit(0,0);//发送一个退出的命令

mPlayerDriver->enqueueCommand(&quit); // will wait on mSyncSem, signaled by player thread

}

free(mDataSourcePath); //如果文件句柄存在的话,就关闭

if (mSharedFd >= 0) {

close(mSharedFd);

}

}

status_t PVPlayer::setDataSource(const char *url)

{

LOGV("setDataSource(%s)", url);

if (mSharedFd >= 0) {

上一页  1 2 3 4 5 6 7 8 9 10 11  下一页

Tags:Android PVPlayer 实现

编辑录入:coldstar [复制链接] [打 印]
赞助商链接