李華明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,下面給出簡單的兩個常用的播放視頻的方法:
[CCVideoPlayer playMovieWithFile: @"himi.mp4"];//播放視頻 [CCVideoPlayer setNoSkip: YES];//視頻是否可以跳過
好啦,由於cocos2d中直接播放視頻的文章極少,絕大部分童鞋雖然大概知道這個擴充庫但是不知道具體如何使用,所以今天Himi放出這篇博文,希望大家能及時看到;
OK,繼續忙了,感謝大家的支援!
cocos2d-iphone-extensions-v0.1.3 : http://www.himigame.com/iphone-cocos2d/482.html