cocos2dx3.3视频播放的实现VideoPlayer的使用
来源:互联网 发布:优化科技创新生态系统 编辑:程序博客网 时间:2024/04/29 23:39
最近因为项目需求需要使用到视频播放功能。
在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.
#include
"ui/UIVideoPlayer.h"
07.
#include
"ui/CocosGUI.h"
08.
USING_NS_CC;
09.
class
HelloWorld :
public
Layer
10.
{
11.
public
:
12.
static
Scene* createScene();
13.
14.
virtual bool init();
15.
16.
void
onEnter();
17.
18.
void
videoPlayOverCallback();
19.
20.
void
showVideo();
21.
/**
22.
* 视频播放状态,只有在android和ios平台有效
23.
*/
24.
#
if
(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
25.
void
videoEventCallback(Ref* sender, cocos2d::experimental::ui::VideoPlayer::EventType eventType);
26.
#endif
27.
28.
CREATE_FUNC(HelloWorld);
29.
};
30.
#endif
HelloWorldScene.cpp文件01.
#include
"HelloWorldScene.h"
02.
03.
USING_NS_CC;
04.
05.
Scene* HelloWorld::createScene()
06.
{
07.
auto scene = Scene::create();
08.
auto layer = HelloWorld::create();
09.
scene->addChild(layer);
10.
return
scene;
11.
}
12.
bool HelloWorld::init()
13.
{
14.
if
( !Layer::init() )
15.
{
16.
return
false
;
17.
}
18.
return
true
;
19.
}
20.
21.
void
HelloWorld::onEnter(){
22.
Layer::onEnter();
23.
showVideo();
24.
}
25.
26.
void
HelloWorld::showVideo(){
27.
Size size = Director::getInstance()->getVisibleSize();
28.
#
if
(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
29.
auto videoPlayer = cocos2d::experimental::ui::VideoPlayer::create();
30.
videoPlayer->setPosition(Point(size.width /
2
, size.height /
2
));
31.
videoPlayer->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
32.
videoPlayer->setContentSize(Size(size.width , size.height));
33.
this
->addChild(videoPlayer);
34.
if
(videoPlayer)
35.
{
36.
videoPlayer->setFileName(
"1111.mp4"
);
37.
videoPlayer->play();
38.
}
39.
videoPlayer->addEventListener(CC_CALLBACK_2(HelloWorld::videoEventCallback,
this
));
40.
#endif
41.
}
42.
43.
/**
44.
* 视频播放完成的回调函数
45.
*/
46.
void
HelloWorld::videoPlayOverCallback()
47.
{
48.
49.
}
50.
/**
51.
* 视频播放的状态
52.
* 注意这里的代码,此处代码只有在android平台和Ios平台有效
53.
*/
54.
#
if
(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
55.
void
HelloWorld::videoEventCallback(Ref* sender, cocos2d::experimental::ui::VideoPlayer::EventType eventType){
56.
switch
(eventType) {
57.
case
cocos2d::experimental::ui::VideoPlayer::EventType::PLAYING:
58.
break
;
59.
case
cocos2d::experimental::ui::VideoPlayer::EventType::PAUSED:
60.
break
;
61.
case
cocos2d::experimental::ui::VideoPlayer::EventType::STOPPED:
62.
break
;
63.
case
cocos2d::experimental::ui::VideoPlayer::EventType::COMPLETED:
64.
videoPlayOverCallback();
65.
break
;
66.
default
:
67.
break
;
68.
}
69.
}
70.
#endif
如此即可实现视频播放了,对视频的控制请参考官方demo- 原文:http://www.it165.net/pro/html/201501/31423.html
0 0
- cocos2dx3.3视频播放的实现VideoPlayer的使用
- cocos2dx3.3视频播放的实现VideoPlayer的使用
- cocos2dx 3.3 视频播放的实现-VideoPlayer的使用
- cocos2dx 视频播放——VideoPlayer的使用
- 关于VideoPlayer以及使用VUforia播放视频的见解
- cocos2dx 3.15 视频播放实现 lua 以及c++ 版本VideoPlayer的使用注意 与详细示例
- 关于Unity3D VideoPlayer播放视频中的声音的问题
- videoPlayer 无法播放视频
- Unity VideoPlayer的使用
- unity VideoPlayer的使用
- unity5.6新功能VideoPlayer播放声音,判断视频播放完毕,以及遇到的坑总结
- unity5.6.0新版本使用videoplayer发布后视频不能播放
- 视频播放--MovieTexture和VideoPlayer
- QT的VideoPlayer控件-循环播放文件
- Rexsee API介绍:Android视频播放,Rexsee的VideoPlayer函数说明与源码
- cocos2d-x lua 播放视频,VideoPlayer在Android和IOS下的坑,
- Quick-Cocos2dx 中, 使用ccexp.VideoPlayer播放视频, 响应用户点击结束播放
- cocos2d-x播放视频(VideoPlayer)小记
- Wireshark-DNS数据报分析
- (一)maven-- 创建一个maven web工程
- CentOS 6.3下配置LVM(逻辑卷管理)
- C/C++中的移位运算
- MySQL之alter语句用法总结
- cocos2dx3.3视频播放的实现VideoPlayer的使用
- get与post小记
- Real-time model scoring for streaming data – a prototype based on Oracle Stream Explorer and Oracle
- (js特效) js代码实现弹出层
- 快速排序
- POJ1905 Expanding Rods 题解&代码
- win7磁盘分区
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.8 类型转换
- tabBar控制器,跳转到指定的页面