PuzzleSDK
VideoPlayerTest类 参考

#include <UIVideoPlayerTest.h>

+ 类 VideoPlayerTest 继承关系图:
+ VideoPlayerTest 的协作图:

Public 成员函数

 CREATE_FUNC (VideoPlayerTest)
 
virtual bool init () override
 
void menuCloseCallback (cocos2d::Ref *sender)
 
void menuRatioCallback (cocos2d::Ref *sender)
 
void menuResourceVideoCallback (cocos2d::Ref *sender)
 
void menuOnlineVideoCallback (cocos2d::Ref *sender)
 
void menuFullScreenCallback (cocos2d::Ref *sender)
 
void menuPauseCallback (cocos2d::Ref *sender)
 
void menuResumeCallback (cocos2d::Ref *sender)
 
void menuStopCallback (cocos2d::Ref *sender)
 
void menuHintCallback (cocos2d::Ref *sender)
 
void menuLoopCallback (cocos2d::Ref *sender)
 
void sliderCallback (cocos2d::Ref *sender, cocos2d::ui::Slider::EventType eventType)
 
void videoEventCallback (cocos2d::Ref *sender, cocos2d::ui::VideoPlayer::EventType eventType)
 
- Public 成员函数 继承自 UIScene
 UIScene ()
 
 ~UIScene ()
 
virtual void onEnter () override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string title () const
 
virtual std::string subtitle () const
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

Private 成员函数

void createVideo ()
 
void createSlider ()
 

Private 属性

cocos2d::ui::VideoPlayer * _videoPlayer
 
cocos2d::Label * _videoStateLabel
 
cocos2d::Label * _loopStatusLabel
 
cocos2d::Rect _visibleRect
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 UIScene
cocos2d::Layer * _uiLayer
 
cocos2d::ui::Layout * _widget
 
cocos2d::ui::Text * _sceneTitle
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 UIVideoPlayerTest.h32 行定义.

成员函数说明

◆ CREATE_FUNC()

VideoPlayerTest::CREATE_FUNC ( VideoPlayerTest  )

◆ createSlider()

void VideoPlayerTest::createSlider ( )
private

在文件 UIVideoPlayerTest.cpp201 行定义.

202{
203 auto centerPos = Vec2(_visibleRect.origin.x + _visibleRect.size.width / 2,_visibleRect.origin.y + _visibleRect.size.height /2);
204
205 auto hSlider = ui::Slider::create();
206 hSlider->setTouchEnabled(true);
207 hSlider->loadBarTexture("cocosui/sliderTrack.png");
208 hSlider->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
209 hSlider->loadProgressBarTexture("cocosui/sliderProgress.png");
210 hSlider->setPosition(Vec2(centerPos.x, _visibleRect.origin.y + _visibleRect.size.height * 0.15f));
211 hSlider->setPercent(50);
212 hSlider->addEventListener(CC_CALLBACK_2(VideoPlayerTest::sliderCallback, this));
213 _uiLayer->addChild(hSlider,0,1);
214
215 auto vSlider = ui::Slider::create();
216 vSlider->setTouchEnabled(true);
217 vSlider->loadBarTexture("cocosui/sliderTrack.png");
218 vSlider->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
219 vSlider->loadProgressBarTexture("cocosui/sliderProgress.png");
220 vSlider->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width * 0.15f, centerPos.y));
221 vSlider->setRotation(90);
222 vSlider->setPercent(50);
223 vSlider->addEventListener(CC_CALLBACK_2(VideoPlayerTest::sliderCallback, this));
224 _uiLayer->addChild(vSlider,0,2);
225}
cocos2d::Layer * _uiLayer
Definition: UIScene.h:44
cocos2d::Rect _visibleRect
void sliderCallback(cocos2d::Ref *sender, cocos2d::ui::Slider::EventType eventType)

引用了 UIScene::_uiLayer, _visibleRect , 以及 sliderCallback().

+ 函数调用图:

◆ createVideo()

void VideoPlayerTest::createVideo ( )
private

在文件 UIVideoPlayerTest.cpp186 行定义.

187{
188 auto centerPos = Vec2(_visibleRect.origin.x + _visibleRect.size.width / 2,_visibleRect.origin.y + _visibleRect.size.height /2);
189
190 auto widgetSize = _widget->getContentSize();
191
192 _videoPlayer = VideoPlayer::create();
193 _videoPlayer->setPosition(centerPos);
194 _videoPlayer->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
195 _videoPlayer->setContentSize(Size(widgetSize.width * 0.4f,widgetSize.height * 0.4f));
196 _uiLayer->addChild(_videoPlayer);
197
198 _videoPlayer->addEventListener(CC_CALLBACK_2(VideoPlayerTest::videoEventCallback, this));
199}
cocos2d::ui::Layout * _widget
Definition: UIScene.h:45
void videoEventCallback(cocos2d::Ref *sender, cocos2d::ui::VideoPlayer::EventType eventType)
cocos2d::ui::VideoPlayer * _videoPlayer

引用了 UIScene::_uiLayer, _videoPlayer, _visibleRect, UIScene::_widget , 以及 videoEventCallback().

被这些函数引用 init().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ init()

bool VideoPlayerTest::init ( )
overridevirtual

重载 UIScene .

在文件 UIVideoPlayerTest.cpp36 行定义.

37{
38 if ( !UIScene::init() )
39 {
40 return false;
41 }
42
43 _visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect();
44
45 // Should create video first to make sure video is destryed first. If not, then may crash.
46 // Because when destroying video, it will stop video which may trigger stopped event listener.
48
49 MenuItemFont::setFontSize(16);
50
51 auto fullSwitch = MenuItemFont::create("FullScreenSwitch", CC_CALLBACK_1(VideoPlayerTest::menuFullScreenCallback, this));
52 fullSwitch->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
53 fullSwitch->setPosition(Vec2(_visibleRect.origin.x + 10,_visibleRect.origin.y + 50));
54
55 auto pauseItem = MenuItemFont::create("Pause", CC_CALLBACK_1(VideoPlayerTest::menuPauseCallback, this));
56 pauseItem->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
57 pauseItem->setPosition(Vec2(_visibleRect.origin.x + 10,_visibleRect.origin.y + 100));
58
59 auto resumeItem = MenuItemFont::create("Resume", CC_CALLBACK_1(VideoPlayerTest::menuResumeCallback, this));
60 resumeItem->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
61 resumeItem->setPosition(Vec2(_visibleRect.origin.x + 10,_visibleRect.origin.y + 150));
62
63 auto stopItem = MenuItemFont::create("Stop", CC_CALLBACK_1(VideoPlayerTest::menuStopCallback, this));
64 stopItem->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
65 stopItem->setPosition(Vec2(_visibleRect.origin.x + 10,_visibleRect.origin.y + 200));
66
67 auto hintItem = MenuItemFont::create("Hint", CC_CALLBACK_1(VideoPlayerTest::menuHintCallback, this));
68 hintItem->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
69 hintItem->setPosition(Vec2(_visibleRect.origin.x + 10,_visibleRect.origin.y + 250));
70
71 //-------------------------------------------------------------------------------------------------------------------
72 auto resourceVideo = MenuItemFont::create("Play resource video", CC_CALLBACK_1(VideoPlayerTest::menuResourceVideoCallback, this));
73 resourceVideo->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
74 resourceVideo->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 50));
75
76 auto onlineVideo = MenuItemFont::create("Play online video", CC_CALLBACK_1(VideoPlayerTest::menuOnlineVideoCallback, this));
77 onlineVideo->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
78 onlineVideo->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 100));
79
80 auto ratioSwitch = MenuItemFont::create("KeepRatioSwitch", CC_CALLBACK_1(VideoPlayerTest::menuRatioCallback, this));
81 ratioSwitch->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
82 ratioSwitch->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 150));
83
84 auto loopToggle = MenuItemFont::create("LoopToogle", CC_CALLBACK_1(VideoPlayerTest::menuLoopCallback, this));
85 loopToggle->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
86 loopToggle->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 170));
87
88 auto menu = Menu::create(resourceVideo,onlineVideo,ratioSwitch,loopToggle,fullSwitch,pauseItem,resumeItem,stopItem,hintItem,nullptr);
89 menu->setPosition(Vec2::ZERO);
90 _uiLayer->addChild(menu);
91
92 _videoStateLabel = Label::createWithSystemFont("IDLE","Arial",16);
93 _videoStateLabel->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
94 _videoStateLabel->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 200));
95 _uiLayer->addChild(_videoStateLabel);
96
97 _loopStatusLabel = Label::createWithSystemFont("(1)","Arial",10);
98 _loopStatusLabel->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
99 _loopStatusLabel->setPosition(Vec2(_visibleRect.origin.x + _visibleRect.size.width - 10,_visibleRect.origin.y + 185));
100 _uiLayer->addChild(_loopStatusLabel);
101
102 return true;
103}
virtual bool init() override
Definition: UIScene.cpp:46
void menuStopCallback(cocos2d::Ref *sender)
cocos2d::Label * _loopStatusLabel
void menuFullScreenCallback(cocos2d::Ref *sender)
void menuOnlineVideoCallback(cocos2d::Ref *sender)
void menuRatioCallback(cocos2d::Ref *sender)
cocos2d::Label * _videoStateLabel
void menuLoopCallback(cocos2d::Ref *sender)
void menuPauseCallback(cocos2d::Ref *sender)
void menuResumeCallback(cocos2d::Ref *sender)
void menuResourceVideoCallback(cocos2d::Ref *sender)
void menuHintCallback(cocos2d::Ref *sender)

引用了 _loopStatusLabel, UIScene::_uiLayer, _videoStateLabel, _visibleRect, createVideo(), UIScene::init(), menuFullScreenCallback(), menuHintCallback(), menuLoopCallback(), menuOnlineVideoCallback(), menuPauseCallback(), menuRatioCallback(), menuResourceVideoCallback(), menuResumeCallback() , 以及 menuStopCallback().

+ 函数调用图:

◆ menuCloseCallback()

void VideoPlayerTest::menuCloseCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp105 行定义.

106{
107 Director::getInstance()->end();
108}

◆ menuFullScreenCallback()

void VideoPlayerTest::menuFullScreenCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp110 行定义.

111{
112 if (_videoPlayer)
113 {
114 _videoPlayer->setFullScreenEnabled(! _videoPlayer->isFullScreenEnabled());
115 }
116}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuHintCallback()

void VideoPlayerTest::menuHintCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp178 行定义.

179{
180 if (_videoPlayer)
181 {
182 _videoPlayer->setVisible(! _videoPlayer->isVisible());
183 }
184}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuLoopCallback()

void VideoPlayerTest::menuLoopCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp126 行定义.

127{
128 if (_videoPlayer)
129 {
130 _videoPlayer->setLooping(! _videoPlayer->isLooping());
131 _loopStatusLabel->setString(_videoPlayer->isLooping() ? "(OO)" : "(1)");
132 }
133}

引用了 _loopStatusLabel , 以及 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuOnlineVideoCallback()

void VideoPlayerTest::menuOnlineVideoCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp145 行定义.

146{
147 if (_videoPlayer)
148 {
149 _videoPlayer->setURL("http://benchmark.cocos2d-x.org/cocosvideo.mp4");
150 _videoPlayer->play();
151 }
152}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuPauseCallback()

void VideoPlayerTest::menuPauseCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp154 行定义.

155{
156 if (_videoPlayer)
157 {
158 _videoPlayer->pause();
159 }
160}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuRatioCallback()

void VideoPlayerTest::menuRatioCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp118 行定义.

119{
120 if (_videoPlayer)
121 {
122 _videoPlayer->setKeepAspectRatioEnabled(! _videoPlayer->isKeepAspectRatioEnabled());
123 }
124}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuResourceVideoCallback()

void VideoPlayerTest::menuResourceVideoCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp136 行定义.

137{
138 if (_videoPlayer)
139 {
140 _videoPlayer->setFileName("cocosvideo.mp4");
141 _videoPlayer->play();
142 }
143}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuResumeCallback()

void VideoPlayerTest::menuResumeCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp162 行定义.

163{
164 if (_videoPlayer)
165 {
166 _videoPlayer->resume();
167 }
168}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ menuStopCallback()

void VideoPlayerTest::menuStopCallback ( cocos2d::Ref *  sender)

在文件 UIVideoPlayerTest.cpp170 行定义.

171{
172 if (_videoPlayer)
173 {
174 _videoPlayer->stop();
175 }
176}

引用了 _videoPlayer.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

◆ sliderCallback()

void VideoPlayerTest::sliderCallback ( cocos2d::Ref *  sender,
cocos2d::ui::Slider::EventType  eventType 
)

在文件 UIVideoPlayerTest.cpp227 行定义.

228{
229 if (eventType == Slider::EventType::ON_PERCENTAGE_CHANGED && _videoPlayer)
230 {
231 Slider* hSlider = (Slider*)this->getChildByTag(1);
232 Slider* vSlider = (Slider*)this->getChildByTag(2);
233
234 auto newPosX = _visibleRect.origin.x + _visibleRect.size.width / 2 + hSlider->getPercent() - 50;
235 auto newPosY = _visibleRect.origin.y + _visibleRect.size.height / 2 + 50 - vSlider->getPercent();
236
237 _videoPlayer->setPosition(Vec2(newPosX,newPosY));
238 }
239}

引用了 _videoPlayer , 以及 _visibleRect.

被这些函数引用 createSlider().

+ 这是这个函数的调用关系图:

◆ videoEventCallback()

void VideoPlayerTest::videoEventCallback ( cocos2d::Ref *  sender,
cocos2d::ui::VideoPlayer::EventType  eventType 
)

在文件 UIVideoPlayerTest.cpp241 行定义.

242{
243 switch (eventType) {
244 case VideoPlayer::EventType::PLAYING:
245 _videoStateLabel->setString("PLAYING");
246 break;
247 case VideoPlayer::EventType::PAUSED:
248 _videoStateLabel->setString("PAUSED");
249 break;
250 case VideoPlayer::EventType::STOPPED:
251 _videoStateLabel->setString("STOPPED");
252 break;
253 case VideoPlayer::EventType::COMPLETED:
254 _videoStateLabel->setString("COMPLETED");
255 break;
256 default:
257 break;
258 }
259}

引用了 _videoStateLabel.

被这些函数引用 createVideo().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ _loopStatusLabel

cocos2d::Label* VideoPlayerTest::_loopStatusLabel
private

在文件 UIVideoPlayerTest.h62 行定义.

被这些函数引用 init() , 以及 menuLoopCallback().

◆ _videoPlayer

◆ _videoStateLabel

cocos2d::Label* VideoPlayerTest::_videoStateLabel
private

在文件 UIVideoPlayerTest.h61 行定义.

被这些函数引用 init() , 以及 videoEventCallback().

◆ _visibleRect

cocos2d::Rect VideoPlayerTest::_visibleRect
private

在文件 UIVideoPlayerTest.h63 行定义.

被这些函数引用 createSlider(), createVideo(), init() , 以及 sliderCallback().


该类的文档由以下文件生成: