안드로이드 단말에서 동영상파일 재생하는 방법
아래의 소스로 안드로이드 단말에서 정상동작 확인했다. (중국산 저가 단말에서도 정상)
단, 기본기능만 지원한다. Play, Stop, Pause, Resume, Seek, IsPlaying 등.
재생위치 구하는 함수는 없으므로 직접 구현해야한다. (구현된 소스보면서 하면 쉽게 될듯.)
iOS에서는 테스트하지 않았지만, 비슷하게 구현하면 될것이다.
HelloWorld Scene cpp, h 압축:
Cocos2d-x_v3.3_VideoPlaySRC.zip
<헤더파일에 추가>
#include "ui/UIVideoPlayer.h"
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
using namespace cocos2d::experimental::ui;
#endif
// 멤버 함수 및 변수 추가
private:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
void videoEventCallback(Ref* p, VideoPlayer::EventType evt);
void playVideo(float dt);
VideoPlayer* _videoPlayer;
#endif
void HelloWorld::createVideo()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
Size visibleSize = Director::getInstance()->getVisibleSize();
Point origin = Director::getInstance()->getVisibleOrigin();
_videoPlayer = VideoPlayer::create();
_videoPlayer->addEventListener(CC_CALLBACK_2(HelloWorld::videoEventCallback, this));
_videoPlayer->setContentSize( Size(800, 600) );
_videoPlayer->setPosition(Vec2(100, 100)); // 동영상 위치
_videoPlayer->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT); // 좌하단 앵커
_videoPlayer->setKeepAspectRatioEnabled(false); // 원본 종횡비 유지여부
_videoPlayer->setFileName("video.mp4");
_videoPlayer->setFullScreenEnabled(true); // true로 해야만 표시됨
_videoPlayer->setTag(TAG_VIDEOPLAYER);
//_videoPlayer->play();
this->addChild(_videoPlayer, 10);
CCLOGINFO("videoPlayer play!");
scheduleOnce(CC_SCHEDULE_SELECTOR(HelloWorld::playVideo), 0.0f);
#endif
}
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
void HelloWorld::videoEventCallback(Ref* p, VideoPlayer::EventType evt)
{
char szEvt[100];
sprintf(szEvt, "video Event : [%d]", evt);
CCLOGINFO(szEvt);
}
void HelloWorld::playVideo(float dt)
{
_videoPlayer->setFullScreenEnabled(false);
_videoPlayer->play();
}
#endif
'Cocos2D-x' 카테고리의 다른 글
CocoStudio에서 생성한 Animation v2.x에서 사용하기 (출처: 메뉴얼) (0) | 2014.11.04 |
---|---|
CocoStudio에서 만든 Animation을 Cocos2d-x에서 불러오기 (0) | 2014.11.03 |
Bitmap font 생성기 (0) | 2014.10.27 |
ScrollView 간단 사용법 (0) | 2014.10.06 |
윈도우 환경에서 메모리 릭 체크 방법 (0) | 2014.09.18 |