quick-cocos2dx使用ccexp.VideoPlayer来播放视频。对应的c++代码为UIVideoPlayer.h和UIVideoPlayer-ios.mm
注意:播放的视频目前始终是处于顶层,会遮盖其他UI。
--调用视频接口
local videoPlayer = ccexp.VideoPlayer:create()
--载入视频文件
videoPlayer:setFileName("video/EnterGame.mp4")
videoPlayer:setPosition(display.cx, display.cy)
--播放视频时是否始终保持款高比
videoPlayer:setKeepAspectRatioEnabled(false)
--是否全屏
videoPlayer:setFullScreenEnabled(true)
--开始播放
videoPlayer:play()
self:addChild(videoPlayer, 9999)
--回调监听
videoPlayer:addEventListener(function(videoPlayer, eventType)
if eventType == ccexp.VideoPlayerEvent.PLAYING then
log("PLAYING")
elseif eventType == ccexp.VideoPlayerEvent.PAUSED then
log("PAUSED")
elseif eventType == ccexp.VideoPlayerEvent.STOPPED then
log("STOPPED")
elseif eventType == ccexp.VideoPlayerEvent.COMPLETED then
--播放完成时处理回调
log("COMPLETED")
--先停止播放再延迟一段时间销毁视频。
--若直接销毁会出现冲突问题。
videoPlayer:stop()
self:runAction(cc.Sequence:create(
cc.DelayTime:create(0.01),
cc.CallFunc:create(function()
self:removeChild(videoPlayer)
self:doComplete()
end)
))
end
end)
对于 视频控件来说,用户操作栏是游戏不需要的。因此最好能够屏蔽掉。
需要修改对应的代码。
UIVideoPlayer-ios.mm文件里面:
self.moviePlayer.allowsAirPlay = false;
self.moviePlayer.controlStyle = MPMovieControlStyleNone;// MPMovieControlStyleEmbedded;
self.moviePlayer.view.userInteractionEnabled = false;// true;