cocos2dx3.3视频播放的实现VideoPlayer的使用

前端之家收集整理的这篇文章主要介绍了cocos2dx3.3视频播放的实现VideoPlayer的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近因为项目需求需要使用到视频播放功能

在3.x版本之前如果需要用到视频播放功能就要使用原生的视频播放实现技术,好在3.x之后官方已经集成了视频播放功能,这是值得欣慰的。但是欣慰过后的悲剧在于,官方的文档一直跟不上版本的更新速度。虽然集成了这个功能,但是郁闷的是你要花费很大的力气去尝试使用技巧(仅限于类似我这种菜鸟)。

以下为我整了好久才摸到的使用方法,其实使用不难,难的是一定要注意这个集成的播放器(VideoPlayer)是有平台限制的。一些代码只有在android平台和IOS平台有效。废话不多说了,直接上实例代码

HelloWorldScene.h文件

01. #ifndef __HELLOWORLD_SCENE_H__
02. #define __HELLOWORLD_SCENE_H__
03.
04. #include"cocos2d.h"
05. //务必引入以下2个.h文件
06. "ui/UIVideoPlayer.h"
07. "ui/CocosGUI.h"
08. USING_NS_CC;
09. classHelloWorld :publicLayer
10. {
11. :
12. staticScene* createScene();
13. 14. virtual bool init();
15. 16. voidonEnter();
17.
18. videoPlayOverCallback();
19. 20. showVideo();
21. /**
22. * 视频播放状态,只有在android和ios平台有效
23. */
24. #if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
25. videoEventCallback(Ref* sender,cocos2d::experimental::ui::VideoPlayer::EventType eventType);
26. #endif
27. 28. CREATE_FUNC(HelloWorld);
29. };
30. #endif

HelloWorldScene.cpp文件

"HelloWorldScene.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
returnscene;
}
bool HelloWorld::init()
{
( !Layer::init() )
returnfalse;
trueHelloWorld::onEnter(){
Layer::onEnter();
showVideo();
}
HelloWorld::showVideo(){
Size size = Director::getInstance()->getVisibleSize();
auto videoPlayer = cocos2d::experimental::ui::VideoPlayer::create();
videoPlayer->setPosition(Point(size.width /2,size.height /));
31. videoPlayer->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
32. videoPlayer->setContentSize(Size(size.width,size.height));
33. this->addChild(videoPlayer);
34. (videoPlayer)
35. 36. videoPlayer->setFileName("1111.mp4");
37. videoPlayer->play();
38. 39. videoPlayer->addEventListener(CC_CALLBACK_2(HelloWorld::videoEventCallback,));
40. 41. 42. 43. 44. * 视频播放完成的回调函数
45. 46. HelloWorld::videoPlayOverCallback()
47. 48.
49. 50. /**
51. * 视频播放的状态
52. * 注意这里的代码,此处代码只有在android平台和Ios平台有效
53. 54. 55. HelloWorld::videoEventCallback(Ref* sender,cocos2d::experimental::ui::VideoPlayer::EventType eventType){
56. switch(eventType) {
57. casecocos2d::experimental::ui::VideoPlayer::EventType::PLAYING:
58. break59. cocos2d::experimental::ui::VideoPlayer::EventType::PAUSED:
60. 61. cocos2d::experimental::ui::VideoPlayer::EventType::STOPPED:
62. 63. cocos2d::experimental::ui::VideoPlayer::EventType::COMPLETED:
64. 65. ;
66. default:
67. 68. 69. 70. #endif
原文链接:https://www.f2er.com/cocos2dx/341009.html

猜你在找的Cocos2d-x相关文章