ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Graphics(6)(转)

Graphics(6)(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-06-30 21:45:05 0 删除 编辑
S60平台提供了一些简单的API来播放一些视频剪辑,他可以用来在一些游戏里播放一些短的视频剪辑.对于Symbian OS的手机来说,回放功能是一项非常重的任务.因为资源有限,一个游戏如果储存了很多视频剪辑将会很浪费空间.如果要播放一个剪辑,你需要先对视频剪辑解压缩,然后进行回放,试用CFbsBitMaps指针进行播放.

CVideoPlayerUtility提供了一个简单的方法来来回放视频剪辑.你需要:
1.创建CVideoPlayerUtility的对象
2.调用CVideoPlayerUtility::OpenFileL来打开视频剪辑
3.如果打开操作成功完成,准备好以后,调用CVideoPlayerUtility::Play来开始回放.

创建CVideoPlayerUtility,需要一个类来实现MVideoPlayerUtilityObserver方法.(查了一下,他应该是一个接口,从定义的方式来看也是,里面包含了几个主要的成员函数)用来完成以下功能:
1.MvpuoPrepareComplete打开文件,准备好.这个信号被调用来相应CVideoPlayerUtility::Prepare.
2.MvpuoOpenComplete打开文件操作是成功或者失败,这个事件被CVideoPlayerUtility::OpenFileL接收相应.
3.MvpuoFrameReady在当前的帧被请求且准备好的时候被CVideoPlayerUtility::GetFrameL调用.
4.MvpuoPlayComplete视频回放完成,成功或失败.如果回放完成被CVideoPlayerUtility::Stop停止,这个事件不被接收.
5.MvpuoEvent普通事件消息.这个被控制者的供应者说明.
下面是播放一段视频剪辑的代码:
以下内容为程序代码:
void CMyGameView::MvpuoOpenComplete(TInt aError)

{

if(aError != KErrNone)

{

// Open failed

} else {

// Open successful

}

}



void CMyGameView::MvpuoFrameReady(CFbsBitmap& aFrame, TInt aError)

{

if(aError != KErrNone)

{

// Failed to get the frame

} else {

// aFrame contains the requested frame.

}

}





void CMyGameView::MvpuoPrepareComplete(TInt aError)

{

if(aError != KErrNone)

{

// Prepare failed; cannot start playback

} else {

// Prepare successful, start playback

iMyVideoPlayer->Play();

}

}



void CMyGameView::MvpuoEvent(const TMMFEvent& aEvent)

{

// General event received; these events depend on controller

}



void CMyGameView::MvpuoPlayComplete(TInt aError)

{

if(aError != KErrNone)

{

// Playback completed in failure.

}

}



void CMyGameView::PlayMyVideoFileL(TDesC& aFileName)

{

delete iMyVideoPlayer;

iMyVideoPlayer = NULL;

iMyVideoPlayer = CVideoPlayerUtility::NewL(

*this,

EMdaPriorityNormal,

EMdaPriorityPreferenceTimeAndQuality,

iCoeEnv->WsSession(),

iCoeEnv->ScreenDevice(),

Window(),

Rect(),

Rect());



// MvpuoOpenComplete callback is called after this is completed.

iMyVideoPlayer->OpenFileL(aFileName);

}


模拟器不支持视频剪辑的回放,因为没有插件,我日.这一段翻译的太失败了,一点价值也没有了.睡觉~~

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-126360/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Graphics(7)(转)
下一篇: Graphics(4)(转)
请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3481
  • 访问量
    3018091