MyException - 我的异常网
当前位置:我的异常网» 操作系统 » 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放

【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d开展视频播放!)

www.MyException.Cn  网友分享于:2013-11-26  浏览:3次
【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/482.html

            自从Himi书籍《Android游戏编程之从零开始》一书上市到现在大概也有一个月时间了,销量不错,感谢大家一直的支持!
            还不知道这本书的童鞋可以如下连接阅读:
            百度百科连接:http://baike.baidu.com/view/6513437.htm
            本博客书籍地址连接: http://blog.csdn.net/xiaominghimi/article/details/6802444

            那么今天Himi为大家讲解如何在cocos2d中视频、音乐、音效的播放教程;
   首先介绍音乐、音效的播放:
              音频与音效的播放很简单,毕竟cocos2d引擎为我们封装好了这一切,直接上
//----------------音乐相关  
//加载音乐  
+(void)loadBgMusic{  
    //    [[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"himi.caf"];   
}  
//播放背景音乐  
+(void)playBgMusic:(NSString*)fileName{  
    [[SimpleAudioEngine sharedEngine] playBackgroundMusic:fileName];  
}  
//暂停背景音乐  
+(void)pauseBgMusic{  
    [[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];   
}  
//继续播放背景音乐  
+(void)resumeBgMusic{  
    [[SimpleAudioEngine sharedEngine] resumeBackgroundMusic];  
}  
//停止背景音乐  
+(void)stopBgMusic{  
    [[SimpleAudioEngine sharedEngine] stopBackgroundMusic];  
}  
//----------------音效相关  
//提前加载音效  
+(void)loadEffectMusic{  
    //  [[SimpleAudioEngine sharedEngine] preloadEffect:@"himi.caf"];  
}  
//播放背景音效  
+(void)playEffectMusic{  
    //  [[SimpleAudioEngine sharedEngine] playEffect:@"himi.caf"];   
}  



需要注意的是:
               1.在播放背景音乐与音效之前都要提前加载,毕竟为了防止加载消耗时间发生与游戏不同步;
               2.播放背景音乐的时候,即使切换背景音乐也不用管,coco是d会暂停之前的播放最新的;
               3.别忘记导入#import "SimpleAudioEngine.h"

     视频的播放:
                关于在cocos2d中进行视频的播放,我想很多童鞋为之烦恼。。。原因是cocos2d本身的引擎中并没有封装,所以很多童鞋最终被迫选用ios sdk中的MPMoviePlayerController;但是Himi研究过后发现,虽然cocos2d本身引擎并没有封装视频播放,但是cocos2d有一个扩展库“ Cocos2D-iPhone-Extensions”,Cocos2D-iPhone-Extensions中除了支持cocos2d的视频播放还附带其他的支持,例如菜单、滚动layer等等,那么本章就不多介绍了,主要介绍Cocos2D-iPhone-Extensions带给我们的视频播放扩展类:CCVideoPlayer 【Cocos2D-iPhone-Extensions 类库本章最后放出下载连接!】
                 大致介绍后,下面我们来具体介绍如何利用扩展包在cocos2d项目中进行视频播放!
      步骤一: 将下载后的Cocos2D-iPhone-Extensions包解压,然后找到Extensions/CCVideoPlayer文件夹,将CCVideoPlayer下的iOS包与“CCVideoPlayer.h”和"CCVideoPlayer.m"导入我们的项目中;如下图:
             
             
   
    步骤二:添加ios sdk中的MediaPlayer框架(真机调试程序可略过此步)
          点击项目,然后选择-targets-Build Phases页面,然后展开“Link Binary With Libraries”,最后点击“+”号将 “MediaPlayer.framework”添加即可;如下图:
              
      注意:  因为我的Xcode是4.1的版本,所以这里添加框架部分可能有些不一样;(貌似低版本的直接可以在项目下的Frameworks右键添加即可);
    
  步骤三:修改需要播放视频的layer类,这里拿HelloWorldLayer举例;
           在”HelloWorldLayer.h"类中,导入#import "CCVideoPlayer.h",然后让HelloWorldLayer使用协议<CCVideoPlayerDelegate>;
           在“HelloWorldLayer.m”类中,在init方法中添加初始化vedeoPlayer的方法:

[CCVideoPlayer setDelegate: self];  


          然后在“HelloWorldLayer.m”类中重写如下函数:
- (void) moviePlaybackFinished  
{  
    CCLOG(@"moviePlaybackFinished");  
}  
  
- (void) movieStartsPlaying  
{  
    CCLOG(@"movieStartsPlaying");  
}  
  
#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED  
// Updates orientation of CCVideoPlayer. Called from SharedSources/RootViewController.m  
- (void) updateOrientationWithOrientation: (UIDeviceOrientation) newOrientation  
{  
    CCLOG(@"updateOrientationWithOrientation");  
    [CCVideoPlayer updateOrientationWithOrientation:newOrientation ];  
}  
#endif  




      到此添加的就完成了,但是如果此时你编译会发现有一处错误,就是在扩展库的”CCVideoPlayer.m”类中还要将下面这句注视掉:

#import "CCVideoPlayerImplMac.h"  


    因为扩展库也支持mac的视频播放,我们做ios肯定不需的,直接屏蔽删除即可;

OK,下面给出简单的两个常用的播放视频的方法:
[cpp] view plaincopy
[CCVideoPlayer playMovieWithFile: @"himi.mp4"];//播放视频  
[CCVideoPlayer setNoSkip: YES];//视频是否可以跳过  


        好啦,由于cocos2d中直接播放视频的文章极少,绝大部分童鞋虽然大概知道这个扩展库但是不知道具体如何使用,所以今天Himi放出这篇博文,希望大家能及时看到;
        OK,继续忙了,感谢大家的支持!
           cocos2d-iphone-extensions-v0.1.3 下载地址: http://www.himigame.com/iphone-cocos2d/482.html

文章评论

十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Java程序员必看电影
Java程序员必看电影
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
10个调试和排错的小建议
10个调试和排错的小建议
总结2014中国互联网十大段子
总结2014中国互联网十大段子
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员和编码员之间的区别
程序员和编码员之间的区别
每天工作4小时的程序员
每天工作4小时的程序员
为什么程序员都是夜猫子
为什么程序员都是夜猫子
那些争议最大的编程观点
那些争议最大的编程观点
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
中美印日四国程序员比较
中美印日四国程序员比较
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何成为一名黑客
如何成为一名黑客
一个程序员的时间管理
一个程序员的时间管理
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
代码女神横空出世
代码女神横空出世
老程序员的下场
老程序员的下场
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
我是如何打败拖延症的
我是如何打败拖延症的
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员必看的十大电影
程序员必看的十大电影
旅行,写作,编程
旅行,写作,编程
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员都该阅读的书
程序员都该阅读的书
我的丈夫是个程序员
我的丈夫是个程序员
鲜为人知的编程真相
鲜为人知的编程真相
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员应该关注的一些事儿
程序员应该关注的一些事儿
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有