【iOS-Cocos2d遊戲開發之十四】音頻/音效/視頻播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d進行視頻播放!)

來源:互聯網
上載者:User

 李華明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



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.